Как ввести данные в форму и перейти на следующую страницу с cookie в python
Я хотел бы ввести данные в форме и войти в систему на веб-сайте, а затем загрузить источник текущей страницы. С помощью curl из терминала я делаю следующие команды:
curl -c cookie.txt --data "email=my@email.com&pass=MyPass&submit=login" https://mywebsite.com/pageA
curl -b cookie.txt https://mywebsite.com/pageB> down.txt
Как я могу сделать то же самое с Pycurl?
1 ответ
Создание из примера в документах:
from __future__ import print_function
import pycurl
try:
# python 3
from urllib.parse import urlencode
except ImportError:
# python 2
from urllib import urlencode
c = pycurl.Curl()
c.setopt(c.URL, 'https://mywebsite.com/pageA')
post_data = {'email': 'my@email.com', 'pass': 'MyPass', 'submit': 'login'}
# Form data must be provided already urlencoded.
postfields = urlencode(post_data)
# Sets request method to POST,
# Content-Type header to application/x-www-form-urlencoded
# and data to send in request body.
c.setopt(c.POSTFIELDS, postfields)
c.setopt(c.COOKIEJAR, 'cookie.txt')
c.setopt(c.COOKIEFILE, 'cookie.txt')
try:
c.perform()
c.setopt(c.URL, 'https://mywebsite.com/pageB')
c.perform()
except pycurl.error as error:
errno, errstr = error
print('An error occurred: ', errstr)
c.close()