Найти - Пользователи
Полная версия: Содержимое узла lxml
Начало » Python для новичков » Содержимое узла lxml
1
knkd
Как получить это содержимое в виде текста?
Всмысле, вместе с содержащимися тегами.
В голову приходит только рекурсивный обход дерева с построением тегов заново…

Я ведь правильно понимаю, что html5lib в данном случае возвращает человеческое lxml-дерево?
def read_page(url):
headers = {"User-Agent" : " Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"}
req = urllib2.Request(url, None, headers)

builder = html5lib.getTreeBuilder('lxml')
parser = html5lib.HTMLParser(builder, namespaceHTMLElements = False)

content = urllib2.urlopen(req).read()

return parser.parse(content)
pyuser
knkd
Как получить это содержимое в виде текста?
Так content и есть “содержимое в виде текста” :)

А для человеческого lxml дерева чем Вас метод tostring не устраивает?
knkd
Нету таких :(

>>> type(doc)
<type 'lxml.etree._Element'>
>>> dir(doc)
__class__
__contains__
__copy__
__deepcopy__
__delattr__
__delitem__
__doc__
__format__
__getattribute__
__getitem__
__hash__
__init__
__iter__
__len__
__new__
__nonzero__
__reduce__
__reduce_ex__
__repr__
__reversed__
__setattr__
__setitem__
__sizeof__
__str__
__subclasshook__
_init
addnext
addprevious
append
attrib
base
clear
extend
find
findall
findtext
get
getchildren
getiterator
getnext
getparent
getprevious
getroottree
index
insert
items
iter
iterancestors
iterchildren
iterdescendants
iterfind
itersiblings
itertext
keys
makeelement
nsmap
prefix
remove
replace
set
sourceline
tag
tail
text
values
xpath
knkd
Ага, вот так?
from lxml import etree
print etree.tostring(doc)
...
Зачем было его тудыть прятать? О_о
непонятно
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