Найти - Пользователи
Полная версия: Python 3.4 Grab
Начало » Центр помощи » Python 3.4 Grab
1 2
Deryagtev
FishHook
А нахрена у вас таймаут - строка?
Спасибо.Конечно суть ошибки не в этом, но спасибо)
4kpt_III
Resolving timed out after 3000 milliseconds.

Забейте в переводчик
Deryagtev
Решил попробовать сделать через 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
UP
Deryagtev
Решил первоначальную проблему с Grab. (переустановил pycurl)
Теперь появился вопрос.
Получаю код страницы через
g = Grab()
s = g.go('vk.com')
print(s.body)

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

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

Итак. Куда я продвинулся? Я авторизируюсь вконтакте, и могу добавить юзера в друзья. Появляется проблема с капчей. Отслеживаю запросы через 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 одного юзера.
light_mushroom
Никто тут не знает случайно как скомпилировать скрипт использующий Grab при помощи cx_Freeze?

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

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

в файле setup.py при компииляции строка build_exe_options выглядит так:
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"], "includes": ["grab"]}
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB