Как ввести данные в форму и перейти на следующую страницу с 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()
Другие вопросы по тегам