Форум сайта python.su
Всем привет.
Подскажите механизм выбора языка (нужен английский, а по geoIP определяет русский) со страницы http://www.betfair.com/ для последующей обработки BeautifulSoup. А то, я новичок в этом деле.
Спасибо, что потратили своё время на мой вопрос.
Офлайн
Офлайн
funnyman
http://www.betfair.com/en/
Офлайн
язык выбранный изначально сохраняется на все последующие странички.. если работать с сайтом по средствам библиотеки Grab, то переходим на главную по ссылке http://www.betfair.com/en/, получаем куки, сайт запоминает нас, и далее работаем уже как нивчем не бывало с английским.. если же пользуешься стандартными средствами python например urllib, и переходишь сразу на нужную тебе страницу, то вместе с запросом странички отправляешь пост или гет запросы скрипту который выставляет язык, перехватить и посмотреть параметры можно в FireFox при помощи плагина Firebug.. Вообщем как то так..
Офлайн
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')
Офлайн
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'
Отредактировано funnyman (Июль 10, 2012 16:40:42)
Офлайн
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/, а потом по твоим делам..
Офлайн
знать бы еще что это такое? полистав мельком вики по супу, html документ у тебя уже получен через граб, не вижу сложностей передать его дальше на обработку..
еще покурив мануал по супу, начинаю недопонимать зачем вообще суп, если в грабе есть возможность работать с документом по средствам xpath?
Отредактировано funnyman (Июль 10, 2012 18:56:59)
Офлайн
funnyman
знать бы еще что это такое? полистав мельком вики по супу, html документ у тебя уже получен через граб, не вижу сложностей передать его дальше на обработку..
еще покурив мануал по супу, начинаю недопонимать зачем вообще суп, если в грабе есть возможность работать с документом по средствам xpath?
Офлайн
Grab использует lxml. А суп обсирался, когда я в последний раз им пользовался. Он вообще актуален?
Офлайн