Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 30, 2010 13:51:55

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Постилка

Здраствуйте, вот бьюсь над проблемой, нужно залогинится на bposter.net под vip и регистрировать аки.
код, эмуляцию браузера взял с этого же форума, да простит меня ее автор не помню поста

import urllib, urllib2, cookielib
data = {"email":"мейл","password":"пароль"}
enc_data=urllib.urlencode(data)
cj = cookielib.CookieJar()
proxy_handler = urllib2.ProxyHandler({})
opener = urllib2.build_opener(proxy_handler, urllib2.HTTPCookieProcessor(cj),urllib2.HTTPRedirectHandler())

opener.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52)'),('x-requested-with','XMLHttpRequest'),('Accept','application/json, text/javascript, */*')]
urllib2.install_opener(opener)
req=urllib2.Request('http://www.bposter.net/account/login')
r=urllib2.urlopen(req,enc_data)
print ".. step1 conektion"
file_save("step1.html",r.read(),'w')
while 1:
try:
req=urllib2.Request('http://www.bposter.net/register/')
r=urllib2.urlopen(req)
url = r.geturl()
break
except IOError,er:
print 'bad step1 conektion\t', er
continue
file_save("step2.html",r.read(),'w')
form = get_form_from_file("step2.html", url,1)
# заполняем форму
form ["autousername"] = 0
form ["autopassword"] = 0
control = form.find_control("username")
control.readonly = False
form ["username"] = "пользователь"
control = form.find_control("password")
control.readonly = False
form ["password"] = "jfaossfawef"
form ["email"] = "мыло'
print "click register ak"
while 1:
try:
#посмотрел, что передает снифер и себе передаю
page,url,k = click_submit_proxy (form,headers = {'x-requested-with':'XMLHttpRequest','Accept':'application/json, text/javascript, */*'})
break
except:
print "..bad step2 conektion"
continue
file_save("step2_1.html",page,'w')
и все вроде ничего да вот только результат от ручной регистрации и скриптом разный
результат ручной работи находится здесь http://s48.radikal.ru/i121/1001/a7/0958754aeec5.jpg
а скрипта здесь http://i062.radikal.ru/1001/93/244cb4a874ca.jpg

скажите кто знает или догадывается в чем проблема?



Отредактировано (Янв. 30, 2010 14:12:21)

Офлайн

#2 Янв. 31, 2010 01:26:39

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

Постилка

По ходу ваш скрипт статику просто не берёт (картинки, css, javascript).



Офлайн

#3 Янв. 31, 2010 10:50:00

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Постилка

А что за функция get_form_from_file, можно её реализацию?



Офлайн

#4 Янв. 31, 2010 19:56:58

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Постилка

wonderfulll
По ходу ваш скрипт статику просто не берёт (картинки, css, javascript).
очень хорошая идея или указания на проблему, функции или модули подскажите, куда именно копать :)

'Accept':'application/json, text/javascript, */*' это разве не помагает?



Отредактировано (Фев. 1, 2010 14:47:00)

Офлайн

#5 Янв. 31, 2010 19:58:34

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Постилка

plusplus
А что за функция get_form_from_file, можно её реализацию?
можно конечно
def get_form_from_file(file_name, url, number=0):
f = open(file_name)
forms = ClientForm.ParseFile(f,url, backwards_compat=False)
form = forms
f.close()
return form
работа с модулем ClientForm



Офлайн

#6 Фев. 3, 2010 21:55:25

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Постилка

тема снова открыта, так как мое решение было неверным, потому, дабы не сбивать с толку посетителей, неверное сообщение было удалено :)



Офлайн

#7 Фев. 4, 2010 02:04:09

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Постилка

никак не могу передать через форму поля

title = 'поле номер один'
desc = 'ну а это два'
tags = 'и три, и четире'
но на латинице все прекрасно передается
title = 'pole nomer odin'
desc = 'ny a eto dva'
tags = 'i tri, i cheturi'
Вот что передает браузер
'Accept':'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*',
'Referer':'http://www.bposter.net/register',
'Accept-Language':'en-us',
'Content-Type':'application/x-www-form-urlencoded',
'Accept-Encoding':'deflate',
'User-Agent':'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52)',
'Host':'www.bposter.net',
'Connection':'Keep-Alive',
'Cache-Control':'no-cache'



Офлайн

#8 Фев. 4, 2010 08:57:53

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

Постилка

1. браузер показал только заголовки, смотрите данные отправляемое методом POST.
2. строки на русском лучше задавать с префиксом u, если у вас не 3-й земляной червяк.

title = u'поле номер один'
desc = u'ну а это два'
tags = u'и три, и четире'



Отредактировано (Фев. 4, 2010 08:58:13)

Офлайн

#9 Фев. 4, 2010 12:03:25

vgulchik
От:
Зарегистрирован: 2009-06-25
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Постилка

1. данные запроса

POST / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www.bposter.net/
Accept-Language: en-us
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2)
Host: www.bposter.net
Content-Length: 1451
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: PHPSESSID=k6u19unk9cktsdiu6rupr950o3

setting_id%5B%5D=2130595&setting_id%5B%5D=2130597&setting_id%5B%5D=2130601&setting_id%5B%5D=2131728&setting_id%5B%5D=2131734&setting_id%5B%5D=2131735&setting_id%5B%5D=2131736&setting_id%5B%5D=2131737&setting_id%5B%5D=2131738&setting_id%5B%5D=2131740&setting_id%5B%5D=2131741&setting_id%5B%5D=2131742&setting_id%5B%5D=2131743&setting_id%5B%5D=2131744&setting_id%5B%5D=2131747&setting_id%5B%5D=2131748&setting_id%5B%5D=2131749&setting_id%5B%5D=2131751&setting_id%5B%5D=2131752&setting_id%5B%5D=2131753&setting_id%5B%5D=2131755&setting_id%5B%5D=2131756&setting_id%5B%5D=2131757&setting_id%5B%5D=2131758&setting_id%5B%5D=2131759&setting_id%5B%5D=2131760&setting_id%5B%5D=2131761&setting_id%5B%5D=2131762&setting_id%5B%5D=2131763&setting_id%5B%5D=2131764&setting_id%5B%5D=2131765&setting_id%5B%5D=2131766&setting_id%5B%5D=2131767&setting_id%5B%5D=2131768&setting_id%5B%5D=2131769&setting_id%5B%5D=2131770&setting_id%5B%5D=2131771&setting_id%5B%5D=2131772&setting_id%5B%5D=2131773&setting_id%5B%5D=2131774&setting_id%5B%5D=2131775&setting_id%5B%5D=2131776&setting_id%5B%5D=2131777&setting_id%5B%5D=2131778&setting_id%5B%5D=2131779&setting_id%5B%5D=2131780&url=trahonline.at.ua&title=%D0%BF%D0%BE%D0%BB%D0%B5+%D0%BD%D0%BE%D0%BC%D0%B5%D1%80+%D0%BE%D0%B4%D0%B8%D0%BD&desc=%D0%BD%D1%83+%D0%B0+%D1%8D%D1%82%D0%BE+%D0%B4%D0%B2%D0%B0&tags=%D0%B8+%D1%82%D1%80%D0%B8%2C+%D0%B8+%D1%87%D0%B5%D1%82%D0%B8%D1%80%D0%B5&bid=&uid=13665&hash=5218e067a19cede9d4f1a7b828ce0fd2
данные ответа
HTTP/1.1 200 OK
Server: nginx/0.7.63
Date: Thu, 04 Feb 2010 09:50:50 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
X-Powered-By: PHP/5.2.11
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip
и gzip файл
Все получено через снифер и я так же все это передаю, но видимо что-то недоделываю или делаю неверно.
2. для работы с формами пользуюсь ClientForm, при юникоде кирилици выдает ошибку кодирования урла



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version