Найти - Пользователи
Полная версия: Подскажите механизм
Начало » Python для новичков » Подскажите механизм
1 2 3
paraman
Всем привет.
Подскажите механизм выбора языка (нужен английский, а по geoIP определяет русский) со страницы http://www.betfair.com/ для последующей обработки BeautifulSoup. А то, я новичок в этом деле.
Спасибо, что потратили своё время на мой вопрос.
funnyman
http://www.betfair.com/en/
paraman
funnyman
http://www.betfair.com/en/

К сожалению вот тут http://sports.betfair.com/football не сработает. Уже пробовал.
funnyman
язык выбранный изначально сохраняется на все последующие странички.. если работать с сайтом по средствам библиотеки Grab, то переходим на главную по ссылке http://www.betfair.com/en/, получаем куки, сайт запоминает нас, и далее работаем уже как нивчем не бывало с английским.. если же пользуешься стандартными средствами python например urllib, и переходишь сразу на нужную тебе страницу, то вместе с запросом странички отправляешь пост или гет запросы скрипту который выставляет язык, перехватить и посмотреть параметры можно в FireFox при помощи плагина Firebug.. Вообщем как то так..
paraman
funnyman
язык выбранный изначально сохраняется на все последующие странички.. если работать с сайтом по средствам библиотеки Grab, то переходим на главную по ссылке http://www.betfair.com/en/, получаем куки, сайт запоминает нас, и далее работаем уже как нивчем не бывало с английским.. если же пользуешься стандартными средствами python например urllib, и переходишь сразу на нужную тебе страницу, то вместе с запросом странички отправляешь пост или гет запросы скрипту который выставляет язык, перехватить и посмотреть параметры можно в FireFox при помощи плагина Firebug.. Вообщем как то так..

Сорри, за снубовский вопрос, но что я делаю не так?

from grab import Grab
g = Grab()
g.setup(headers={'Accept-Language': 'en-us,en;q=0.7'})
g.go('http://soccer.betfair.com/')
print g.request_headers
print g.response.headers.get('Content-Language')
funnyman
IP все равно отстается тот же.. мэн, посмотри при помощи фаербаг что и куда передается когда ты заходишь и выбираешь в меню вместо русского английский, срабатывает какой то ajax скрипт, без перезагрузки странички меняется язык.. я пока фаерфокс гружу на рабочий комп а вообще если не нужен геморой заплати за пару хороших прокси поведай что хочешь с сайтом то делать? может русский английский не так важен?

смотри прикол, тот код который привел ты возвращает ru-RU, теперь добавляем небольшой костыль:

>>> from grab import Grab
>>> g = Grab()
>>> g.go('http://www.betfair.com/en/')
<grab.response.Response object at 0x953d58c>
>>> g.go('http://soccer.betfair.com/')
<grab.response.Response object at 0x95cf38c>
>>> g.response.headers.get('Content-Language')
'en-GB'

и получаем en-GB т.е. сначала граб объект направляем на http://www.betfair.com/en/, а потом по твоим делам..
paraman
funnyman
IP все равно отстается тот же.. мэн, посмотри при помощи фаербаг что и куда передается когда ты заходишь и выбираешь в меню вместо русского английский, срабатывает какой то ajax скрипт, без перезагрузки странички меняется язык.. я пока фаерфокс гружу на рабочий комп а вообще если не нужен геморой заплати за пару хороших прокси поведай что хочешь с сайтом то делать? может русский английский не так важен?

смотри прикол, тот код который привел ты возвращает ru-RU, теперь добавляем небольшой костыль:

>>> from grab import Grab
>>> g = Grab()
>>> g.go('http://www.betfair.com/en/')
<grab.response.Response object at 0x953d58c>
>>> g.go('http://soccer.betfair.com/')
<grab.response.Response object at 0x95cf38c>
>>> g.response.headers.get('Content-Language')
'en-GB'

и получаем en-GB т.е. сначала граб объект направляем на http://www.betfair.com/en/, а потом по твоим делам..

Пишу бота. Я для BeautifulSoup написал парсер, но мне чертовски не нравятся русские буквы. Да и по задумке, бот должен будет анализировать разные источники данных, а данные чаще на en, чем на ru.

P.s. А как теперь передать всё это BeautifulSoup?
funnyman
знать бы еще что это такое? полистав мельком вики по супу, html документ у тебя уже получен через граб, не вижу сложностей передать его дальше на обработку..


еще покурив мануал по супу, начинаю недопонимать зачем вообще суп, если в грабе есть возможность работать с документом по средствам xpath?
paraman
funnyman
знать бы еще что это такое? полистав мельком вики по супу, html документ у тебя уже получен через граб, не вижу сложностей передать его дальше на обработку..


еще покурив мануал по супу, начинаю недопонимать зачем вообще суп, если в грабе есть возможность работать с документом по средствам xpath?

Вы убили меня. Написал на супе, с возможностью поиска ссылок и перехода по ним и дальше парсинг.
Изучать питон начал около двух недель назад, подвернулся суп, на нём и написал. А теперь нужно понять, значимость перехода всего кода на граб, кто из них быстрей.

А как передать дальше?

P.s. Спасибо, что уделяете мне своё время.
odnochlen
Grab использует lxml. А суп обсирался, когда я в последний раз им пользовался. Он вообще актуален?
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