Форум сайта python.su
0
Как получить это содержимое в виде текста?
Всмысле, вместе с содержащимися тегами.
В голову приходит только рекурсивный обход дерева с построением тегов заново…
Я ведь правильно понимаю, что 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)
Офлайн
36
knkdТак content и есть “содержимое в виде текста” :)
Как получить это содержимое в виде текста?
Офлайн
0
Нету таких :(
>>> 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
Офлайн
0
Ага, вот так?
from lxml import etree
print etree.tostring(doc)
...
Офлайн