Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 7, 2016 22:21:37

ashimano
Зарегистрирован: 2016-06-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

lxml parse

Помогите мне пожалуйста. Уже очень много тем посмотрел, но ничего не выходит.

from lxml.html import parse 
page = parse('http://ria.ru/religion/all.html').getroot() 
fc = page.find_class('b-list')  
print (fc) 

Когда так пишу, выдает мне тип элемента и его размер, если я не ошибаюсь.
А как сделать так, чтобыон мне вывел все то, что содержится в нем?
Я понимаю, что надо цикл сделать
for row in fc:
но у меня проблема с выводом информации идет.

Отредактировано ashimano (Июнь 7, 2016 22:23:26)

Офлайн

#2 Июнь 8, 2016 03:57:56

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

lxml parse

Оно?

from lxml.html import parse, tostring
page = parse('http://ria.ru/religion/all.html').getroot() 
fc = page.find_class('b-list') 
print(*(tostring(e) for e in fc), sep="\n")



Офлайн

#3 Июнь 8, 2016 22:16:49

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

lxml parse

http://lxml.de/lxmlhtml.html
.text_content():
Returns the text content of the element, including the text content of its children, with no markup.

>>> type(fc)
<type 'list'>

Ваш fc контейнер содержит в себе список из нескольких контейнеров.

<div class="b-list">
     <div class="b-list__item">
     <a href="/religion/20160608/1444696851.html">
     <div class="b-list__item-story">
     <div class="b-list__item-announce">
     <div class="b-list__item-info">
</div>

>>> for x in fc:
...     print x.text_content()
...

но я думаю проще достать контент из них используя Xpath

Отредактировано papuas (Июнь 8, 2016 22:27:55)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version