Как автоматизировать запросы на загрузку данных с сайта с python - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь загрузить некоторые данные из https://www.eddmaps.org/tools/query/ Мне нужно выбрать определенные критерии и создать цикл для загрузки данных по 67 округам Флориды.

До сих пор я мог только войти на сайт.Пытался использовать библиотеки, такие как beautifulsoup и selenium, но не смог понять это

import requests

url = 'https://www.eddmaps.org/tools/index.cfm?forcelogin&'
values = {'username': 'myuseername',
          'password': 'mypasword'}
r0 = requests.post(url, data=values)


url2 = 'https://www.eddmaps.org/tools/query/'
r1 =requests.get(url2)

print(r1.status_code == requests.codes.ok)

Кажется, мне нужно знать больше, чем Python.Пожалуйста, помогите, если это может быть достигнуто

1 Ответ

0 голосов
/ 24 мая 2019

Вы пытаетесь войти, затем сделать запрос, а затем загрузить данные. Возможно, вам потребуется использовать функцию session в запросах:

import requests

s = requests.session()
url = 'https://www.eddmaps.org/tools/index.cfm?forcelogin&'
login_data = {'username': 'myuseername',
                  'password': 'mypasword'}
res1 = s.post(url, login_data)
try:

    res1.raise_for_status()
except Exception as e:
    print('login failed')

# Make a query
url2 = 'https://www.eddmaps.org/tools/query/results.cfm?reporter=&userGroupID=&observationDateStart=&observationDateEnd=&dateEnteredStart=&dateEnteredEnd=&dateUpdatedStart=&dateUpdatedEnd=&objectid=&subjectnumber=&cat=&div=&eradicationstatus=2&list=&rank=&habitat=&country=926&state=&fipscode=&township=&layersourceid=&project='
res2 = s.get(url2)
try:    
    res2.raise_for_status()
except Exception as e:
    print('query failed')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...