Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 6, 2016 22:33:41

Deryagtev
Зарегистрирован: 2015-09-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3.4 Grab

FishHook
А нахрена у вас таймаут - строка?
Спасибо.Конечно суть ошибки не в этом, но спасибо)

Офлайн

#2 Янв. 6, 2016 23:13:06

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Python 3.4 Grab

Resolving timed out after 3000 milliseconds.

Забейте в переводчик

Офлайн

#3 Янв. 7, 2016 16:10:02

Deryagtev
Зарегистрирован: 2015-09-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3.4 Grab

Решил попробовать сделать через API и столкнулся с проблемой.
Начинаю парсить пользователей какой-нибудь группы, и в конце концов натыкаюсь на человека с вот таким именем Andréí = Andréí, и получаю вот такую ошибку:

File “C:\Python34\lib\encodings\cp1251.py”, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)
UnicodeEncodeError: ‘charmap’ codec can't encode characters in position 52-53: character maps to <undefined>

Что делать?

P.S. Разобрался.

Следующий вопрос. Вк выдаёт ошибку
vk.exceptions.VkAPIError: 14. Captcha needed. request_params = {'user_id': ‘2022’, ‘oauth’: ‘1’, ‘method’: ‘friends.add’}
Понятно, что нужно ввести капчу, но в документации к API сказано, что вместе с ошибкой должны передаваться параметры captcha_sid и captcha_img . Как мне их получить и обработать не заканчивая работу программы на ошибке?

Отредактировано Deryagtev (Янв. 7, 2016 17:07:17)

Офлайн

#4 Янв. 8, 2016 23:08:18

Deryagtev
Зарегистрирован: 2015-09-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3.4 Grab

UP

Офлайн

#5 Янв. 9, 2016 15:03:22

Deryagtev
Зарегистрирован: 2015-09-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3.4 Grab

Решил первоначальную проблему с Grab. (переустановил pycurl)
Теперь появился вопрос.
Получаю код страницы через

g = Grab()
s = g.go('vk.com')
print(s.body)

В ответ получаю кучу текста с символами переноса строки \n.
Копирование этого текста и вставка в инструкцию print может помочь(если это не vk.com, а какая-нибудь простая страничка только с юникодовскими символами, но как всё же мне сделать вывод, в котором \n будет заменяться на перенос строки сразу?

Оказалось всё просто, теперь стыдно lg_h.decode()

Отредактировано Deryagtev (Янв. 9, 2016 17:02:57)

Офлайн

#6 Янв. 10, 2016 13:56:11

Deryagtev
Зарегистрирован: 2015-09-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3.4 Grab

Продолжу задавать вопросы в этой теме, т.к. всё равно они относятся к тому же проекту, а плодить темы не хочется.

Итак. Куда я продвинулся? Я авторизируюсь вконтакте, и могу добавить юзера в друзья. Появляется проблема с капчей. Отслеживаю запросы через httpanalyzerv7. Когда выскакивает капча(примерно на 3 раз) отправляется get запрос:

https://vk.com/captcha.php?sid=788646221388&s=1
Если перейти по ссылке и пообновлять, то увидим, что картинка постоянно меняется.
Вопрос:
Как мне получить нужную картинку(вообще не представляю как даже получить тот же sid из ссылки, попробовал смотреть body страницы при добавлении в друзья. При успешном добавлении(капчу вводить не нужно, выдаёт код страницы юзера), когда нужно вводить капчу, выдаёт вот такую строчку:
<!–18945<!><!>3<!>3563<!>2<!>280830367329<!>0
Я подозреваю, что самое длинное число это и есть sid, но не уверен, т.к. какой бы sid я не подставил в ссылку примерно похожий по размеру, я получаю картинку(в браузере).

Подытожим. Мне нужно как-то получить sid, а после картинку, но ту, что мне показывают, а не следующую, и после снова отправить пост запрос на добавление в друзья, но уже с параметром капчасид и капчакей.

Вот как выглядит запрос сейчас
g.setup(post='act=add&al=1&from=profile&hash='+hashFriend+'&mid=133744239')
ErrorFriend = g.go('https://vk.com/al_friends.php')

Hash парсится со страницы юзера, каждый раз разный, а mid это его Id, пока для тестов использую id одного юзера.

Офлайн

#7 Март 12, 2016 13:09:51

light_mushroom
От: Стокванхейм
Зарегистрирован: 2016-02-28
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3.4 Grab

Никто тут не знает случайно как скомпилировать скрипт использующий Grab при помощи cx_Freeze?

использую связку PyQt4+ grab на Python3.4

приложение нормально компилится, но в сеть не заходит

в файле setup.py при компииляции строка build_exe_options выглядит так:

build_exe_options = {"packages": ["os"], "excludes": ["tkinter"], "includes": ["grab"]}



Всё неспроста.

Отредактировано light_mushroom (Март 12, 2016 13:12:47)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version