Уведомления

Группа в Telegram: @pythonsu

#1 Март 16, 2012 11:53:56

bollustrado
От:
Зарегистрирован: 2012-03-16
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с lxml

Имеется код:

from lxml.html import parse
# Получаем страничку
page = parse('http://habrahabr.ru/').getroot()# Ищем все теги <a> с css классом topic
hrefs = page.cssselect("a.topic")
for row in hrefs:
# Получаем атрибут href
print(row.text)
Изначально он отлично работал, но после того, как я немного поэспериментировал, он выдает пустую строку. Попробовал:
from urllib.request import urlopen
from lxml import html
page = urlopen("http://habrahabr.ru/")
doc = html.document_fromstring(page.read())
for topic in doc.cssselect('a.topic'):
print(topic.text)
Результат тот же (пустая строка)
Пробовал переустанавливать python и lxml, не помогает. В список исключений брандмауэра python добавлен. Windows 7, Python 3.2, lxml 2.3.3.
Помогите плз, может кто сталкивался с таким?



Офлайн

#2 Март 16, 2012 12:15:25

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Проблема с lxml

a.topic -> a.post_title

bollustrado
Пробовал переустанавливать python и lxml, не помогает.
А html посмотреть не проще?

Офлайн

#3 Март 16, 2012 12:18:23

bollustrado
От:
Зарегистрирован: 2012-03-16
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с lxml

Большое спасибо, я уже хотел винду сносить)



Офлайн

#4 Март 16, 2012 12:54:43

bollustrado
От:
Зарегистрирован: 2012-03-16
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с lxml

from lxml.html import parse
page = parse('http://pogoda.yandex.ru/moscow/').getroot()
hrefs = page.cssselect("div.b-forecast__tday")
for row in hrefs:
print(row.text)
Извините, а в этом коде что не так?



Офлайн

#5 Март 16, 2012 14:36:32

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Проблема с lxml

Яндексу печеньки нужны:

from urllib2 import build_opener, HTTPHandler, HTTPCookieProcessor
from lxml.html import document_fromstring

browser = build_opener(HTTPHandler(), HTTPCookieProcessor())
html = browser.open('http://pogoda.yandex.ru/moscow/').read()
doc = document_fromstring(html)
for div in doc.cssselect("div.b-forecast__tday"):
print(div.text)

Отредактировано (Март 16, 2012 14:43:51)

Офлайн

#6 Март 16, 2012 15:08:53

bollustrado
От:
Зарегистрирован: 2012-03-16
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с lxml

from urllib.request import build_opener, HTTPHandler, HTTPCookieProcessor
from lxml.html import document_fromstring

browser = build_opener(HTTPHandler(), HTTPCookieProcessor())
html = browser.open('http://pogoda.yandex.ru/moscow/').read()
doc = document_fromstring(html)
for div in doc.cssselect("div.b-forecast__tday"):
print(div.text)
выдает ошибку
HTTPError: HTTP Error 302: Found - Redirection to url
'moscow?ncrnd=107' is not allowed



Офлайн

#7 Март 16, 2012 16:04:36

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Проблема с lxml

from urllib2 import build_opener, HTTPHandler, HTTPCookieProcessor, HTTPRedirectHandler
from lxml.html import document_fromstring

browser = build_opener(HTTPHandler(), HTTPCookieProcessor(), HTTPRedirectHandler())
html = browser.open('http://pogoda.yandex.ru/moscow/').read()
doc = document_fromstring(html)
for div in doc.cssselect("div.b-forecast__tday"):
print(div.text)
?

Офлайн

#8 Март 17, 2012 08:39:58

bollustrado
От:
Зарегистрирован: 2012-03-16
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с lxml

не помогает, та же ошибка.



Офлайн

#9 Март 17, 2012 11:17:27

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Проблема с lxml

Возможно проблема в том, что я использую второй питон, а вы - третий
попробуйте заменить вот так:

from urllib.request import build_opener, HTTPHandler, HTTPCookieProcessor, HTTPRedirectHandler
Если не поможет - либо поставьте второй питон и попробуйте с ним (заменив ‘print(div.text)’ на ‘print div.text’)
Либо дождитесь кого-нибудь, кто поможет вам с третьей версией )

Офлайн

#10 Март 17, 2012 11:59:14

bollustrado
От:
Зарегистрирован: 2012-03-16
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с lxml

Спасибо



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version