2016-09-11 4 views
0

Я хотел бы ввести данные в форму и войти на сайт, а затем загрузить источник текущей страницы. С завитком от терминала я делаю следующие команды:Как ввести данные в форму и перейти на следующую страницу с помощью файла cookie в python

curl -c cookie.txt --data "[email protected]&pass=MyPass&submit=login" https://mywebsite.com/pageA 

curl -b cookie.txt https://mywebsite.com/pageB> down.txt 

Как я могу сделать то же самое с pycurl?

+0

я попытался с помощью этого сценария, который я нашел в Интернете: http://codebin.it?s=57d5650ef0c1790003000001 но это не работает – who

ответ

0

Построение из примера в docs:

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': '[email protected]', '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() 
+0

спасибо , я думаю, что это работает, но теперь, как я могу скачать источник pageB? – who

+0

@who Если этот ответ удовлетворяет вашему запросу, отметьте его как принятый. Если у вас больше запросов, откройте новый вопрос. –

+0

нет, я ошибаюсь, этот скрипт дает мне неправильный файл cookie – who

Смежные вопросы