Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python3中使用request绕过单选按钮刮取数据?_Python_Python 3.x_Web Scraping_Request_Python Requests - Fatal编程技术网

如何在Python3中使用request绕过单选按钮刮取数据?

如何在Python3中使用request绕过单选按钮刮取数据?,python,python-3.x,web-scraping,request,python-requests,Python,Python 3.x,Web Scraping,Request,Python Requests,我想从中提取数据。访问后,我们需要选择单选按钮条件为“TIN”,然后 输入TIN编号为“27680809621V”&单击提交按钮。我不知道该怎么做我被卡住了,因为没有名字或价值 import requests from bs4 import BeautifulSoup s = requests.session() req = s.get('https://mahagst.gov.in/en/know-your-taxpayer') soup = BeautifulSoup(req.text,'

我想从中提取数据。访问后,我们需要选择单选按钮条件为“TIN”,然后 输入TIN编号为“27680809621V”&单击提交按钮。我不知道该怎么做我被卡住了,因为没有名字或价值

import requests
from bs4 import BeautifulSoup

s = requests.session()
req = s.get('https://mahagst.gov.in/en/know-your-taxpayer')
soup = BeautifulSoup(req.text,'lxml')

dictinfo = {i['name']:i.get('value','') for i in soup.select('input[name]')}

有人请帮帮我。

您可能可以通过网站使用的相同URL获得所需内容,即
https://mahagst.gov.in/sap/opu/odata/sap/ZMSTD_KYT_SRV/TinDetailSet?$filter=(Tin eq'27680809621V')
,通过替换
Tin编号


或者,您可以使用Selenium来检查单选按钮、填充输入并获取数据。

选择使用所选Tin发出get请求:)这就是返回json响应的方式,因此,无需使用BeautifulSoup

from requests import Session

s = Session()
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) '\
                         'AppleWebKit/537.36 (KHTML, like Gecko) '\
                         'Chrome/75.0.3770.80 Safari/537.36',
          'Accept': 'application/json'
}
# Add headers
s.headers.update(headers)


BASE_URL = 'https://mahagst.gov.in/sap/opu/odata/sap/ZMSTD_KYT_SRV/TinDetailSet'

params = {
    "$filter": "(Tin eq '27680809621V')"
}

r = s.get(BASE_URL, params=params)

data = r.json()
print(data)
这就是我如何找到URL和参数的

数据返回是一个漂亮的json(字典):)


数据是一个字典和列表。因此,您可以使用Python技能来获取变量。e、 g.
data['d']['results']
:)希望这对您有所帮助。

您到底想放弃什么