Уведомления

Группа в Telegram: @pythonsu

#1 Июль 12, 2013 19:14:12

Jeck290
От:
Зарегистрирован: 2010-01-03
Сообщения: 99
Репутация: +  0  -
Профиль   Отправить e-mail  

Requests HTTP for Humans обрезает запрос

def getabondisable_or_create (login):
    SITES2 = 'https://172.241.50.1:2433/admin/index.cgi'
    payloads2 = {'search':'1' , 'LOGIN':login}
    r = requests.get(SITES2, verify=False , auth=HTTPBasicAuth('login', 'pass') , params=payloads2)
    doc = lxml.html.document_fromstring(r.text)
    txt2 = doc.xpath(".//*[@id='info_message']/div[2]/text()[3]")
    print txt2

Пытаюсь с помощью библиотеки Requests парсить сайт , столкнулся с такой проблемой , после захода на сайт в переменную r.text выдается html страница равная 1/4 всей страницы такое чувство что Requests обрезает страницу , нужные мне данные находятся на много ниже по странице чем выдает Requests . Кто то сталкивался с таким поведением этой библиотеки ?



Офлайн

#2 Июль 12, 2013 19:29:13

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Requests HTTP for Humans обрезает запрос

r.text - это страница в Юникоде. Кодировка берется из хедеров или определяется автоматически. Думаю, причиной может быть неправильно определенная кодировка.

Попробуйте передавать r.content (исходная страница - байты) в lxml.html.document_fromstring() или перекодировать явно.

Также, страница может быть сгенерированна динамически с помощью JavaScript.

Офлайн

#3 Июль 12, 2013 19:50:10

Jeck290
От:
Зарегистрирован: 2010-01-03
Сообщения: 99
Репутация: +  0  -
Профиль   Отправить e-mail  

Requests HTTP for Humans обрезает запрос

r.content выдает точно такую же страницу как и r.text :(
А как можно перекодировать страницу ? где за это можно почитать ?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version