Форум сайта python.su
0
Совсем недавно познакомился с библиотекой PyCurl, до него использовал urllib, со страшным
cookieJar = cookielib.CookieJar()
... def connect(hash): curl.setopt(pycurl.URL, 'http://example.com/') curl.setopt(pycurl.WRITEFUNCTION, data.write) curl.setopt(pycurl.FOLLOWLOCATION, 1) curl.setopt(pycurl.COOKIEJAR, "/tmp/cookie.txt") curl.setopt(pycurl.COOKIEFILE, "/tmp/cookie.txt") curl.setopt(pycurl.POSTFIELDS, 'auth_token='+hash+'&login='+login+'&password='+password) curl.setopt(pycurl.POST, 1) curl.perform() if re.search('href="/logout"', data.getvalue()): print 'Auth is successful!' ...
'User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0', 'Accept: text/javascript', 'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3', 'Accept-Encoding: gzip, deflate', 'Connection: keep-alive', 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8', 'X-Requested-With: XMLHttpRequest', 'Referer: http://example.com/somebody', 'Content-Length: 69', 'Cookie:' ??????? 'Pragma: no-cache', 'Cache-Control: no-cache'
data.truncate(0) # чищу data = StringIO.StringIO() curl.setopt(pycurl.URL, 'http://example.com/clicks/somebody/020304050/add') curl.setopt(pycurl.WRITEFUNCTION, data.write) curl.setopt(pycurl.COOKIEFILE, "/tmp/cookie.txt") curl.setopt(pycurl.HTTPHEADER, ['User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0', 'Accept: text/javascript', 'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3', 'Accept-Encoding: gzip, deflate', 'Connection: keep-alive', 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8', 'X-Requested-With: XMLHttpRequest', 'Referer: http://example.com/somebody', 'Content-Length: 69', 'Cookie:', 'Pragma: no-cache', 'Cache-Control: no-cache']) curl.setopt(pycurl.POSTFIELDS, 'auth_token='+hash) curl.setopt(pycurl.POST, 1) curl.perform() print data.getvalue()
Отредактировано doublex (Апрель 12, 2012 21:07:55)
Офлайн
15
Пара советов:
1)
curl.setopt(pycurl.COOKIEJAR, "/tmp/cookie.txt") curl.setopt(pycurl.COOKIEFILE, "/tmp/cookie.txt")
curl.setopt(pycurl.COOKIELIST, "")
curl.setopt(pycurl.COOKIE, 'mycookie')
Отредактировано plusplus (Апрель 13, 2012 13:00:39)
Офлайн