Как очистить данные в обход переключателя с помощью запроса в Python 3? - PullRequest
0 голосов
/ 15 июня 2019

Я хочу собрать данные с этого сайта .После посещения нам нужно выбрать критерий переключателя как «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]')}

Кто-то, пожалуйста, помогите мне.

Ответы [ 2 ]

2 голосов
/ 15 июня 2019

Выбор делает запрос GET с выбранным Tin :). Так вы получите ответ 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и параметры enter image description here

И возврат данных - это прекрасный json (словарь) :) enter image description here

Данные представляют собой словарьи список.Таким образом, вы можете использовать свои навыки Python, чтобы получить переменные.например, data['d']['results'] :) Надеюсь, это поможет вам.

0 голосов
/ 15 июня 2019

Вы, вероятно, можете получить нужный вам контент по тому же URL-адресу, который используется веб-сайтом, то есть https://mahagst.gov.in/sap/opu/odata/sap/ZMSTD_KYT_SRV/TinDetailSet?$filter=(Tin eq '27680809621V'), заменив TIN number.

В качестве альтернативы, вы можете использовать Selenium для проверки переключателя,заполните данные и получите данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...