Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 22, 2009 01:52:45

PoshtarBoba
От:
Зарегистрирован: 2009-10-22
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Python and POST and cookies

Я это просто тут оставлю…

Решил написать скрипт, который ломится на сайт с куками, логинится за меня, скачивает страничку с инфой (например, личная новостная лента), ну и выбирает из неё самое вкусненькое. 5 часов убил, гугля по сабжу, соединяя в кучу кусочки кода (в питоне я не гуру, только-только с объектами разбираюсь). Кто в и-нет по прокси лазает пропишите в словарь ProxyHandler({}) в соответствующем месте (тут уж погуглите). Значит, чтоб может кто другой сэкономил эти 5 часов - выложусь тут.
Сначала выясним, какие параметры POST передаёт форма на сервер, разбираем html-файл, все аттрибуты name:value собираем в словарь.

url = "http://site.ru/main/login.php"
data = {"login":"VasyaPupkin","pass":"12345","cnt":"/members/index.php"}
# аттрибут cnt в моём случае был type="hidden"
import urllib, urllib2, cookielib
enc_data=urllib.urlencode(data)
cj = cookielib.CookieJar()
proxy_handler = urllib2.ProxyHandler({})
opener = urllib2.build_opener(proxy_handler, urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
# конвертнули аттрибуты, подготовили кукисняк, прокси, ещё чё-то
req=urllib2.Request(url)
r=urllib2.urlopen(req,enc_data)
# ну и выкачали веб-страничку, далее каждый извлекает свой PROFIT
print r.read()



Отредактировано (Окт. 22, 2009 09:23:06)

Офлайн

#2 Окт. 22, 2009 14:13:36

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Python and POST and cookies

Похвально.
Тут мы ещё обсуждали варианты эмуляции браузера:
http://python.su/forum/viewtopic.php?id=5323

Офлайн

#3 Окт. 23, 2009 01:25:47

PoshtarBoba
От:
Зарегистрирован: 2009-10-22
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Python and POST and cookies

С гугль-кодом как-то не могу разобраться, не совсем понимаю суть этого сервиса.
Про эмуляцию определенных браузеров тоже встречал куски кода, но, поскольку в десятке протестированных сайтов работает на ура и без него, решил не усложнять код. Бывает, сайты разным браузерам дают слегка отличающиеся документы, но ПРОФИТовый контент остаётся неизменным (оставим за бортом те эксклюзивные случаи, когда Микрософт байкотировал Оперу, которая в ответ сделала версию программы, открывающую преднамеренно сильно искаженный в плане контента и дизайна сайт Микрософта).



Офлайн

#4 Окт. 23, 2009 16:22:54

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Python and POST and cookies

С гугль-кодом как-то не могу разобраться, не совсем понимаю суть этого сервиса.
Хм, и что, википедия тоже не дала просветления?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version