Я получаю ссылки врачей, отправляя запросы на почту с помощью python beautifulsoup - PullRequest
0 голосов
/ 11 декабря 2018
import requests

from bs4 import BeautifulSoup

try:

    for count in range(123401,123405):
        ctl00_RightContetHolder_TextBox1 = count

        r = requests.post('http://karnatakamedicalcouncil.com/RenewalReport.aspx',
                                  data={'ctl00_RightContetHolder_TextBox1': count, 'Search': "submit"})

        soup = BeautifulSoup(r.text, 'html.parser')

        for i in soup.find('table', {'class': 'mGrid'}):
            for links in i.find('a',class_='Viewdetails'):
                print links

except:
    pass

Я пытаюсь получить каждую из ссылок в таблицах mGrid, но не смог получить их с красивым супом.Я не понимаю, почему якорные теги не обнаруживаются или, если они обнаруживаются, почему они не печатаются.Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 11 декабря 2018

В нем отсутствуют обязательные данные __VIEWSTATE и __EVENTVALIDATION, для его получения необходимо создать запрос GET и извлечь скрытое входное значение с этим идентификатором, после чего вы можете создать POST или запрос поиска с этими данными.

url = 'http://karnatakamedicalcouncil.com/RenewalReport.aspx'

html = requests.get(url).text
soup = BeautifulSoup(html, 'html.parser')

VIEWSTATE = soup.find(id='__VIEWSTATE')['value']
EVENTVALIDATION = soup.find(id='__EVENTVALIDATION')['value']

for count in range(123401,123405):
    data = {
            '__VIEWSTATE' : VIEWSTATE,
            '__VIEWSTATEENCRYPTED' : '',
            '__EVENTVALIDATION' : EVENTVALIDATION,
            'ctl00$RightContetHolder$TextBox1': count,
            'ctl00$RightContetHolder$hdnSearch': "Search",
          }

    r = requests.post(url, data=data)
    soup = BeautifulSoup(r.text, 'html.parser')

    for links in soup.findAll('a', class_='Viewdetails'):
        print links['href']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...