python提取标签中的内容
抓取了一个网页,网页中一部分内容如下:
我使用如下代码:
import codecs
#coding=utf-8
from lxml import etree
f=codecs.open("1.html","r","utf-8")
content=f.read()
f.close()
tree=etree.HTML(content)
node=tree.xpath("//div[@class='content']")[0]
print node.text.encoding('gbk')
但是只能输出:奥迪阿萨德,第一个之后的内容都不能输出,请问该如何解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
lxml 的
element.text
返回的是这个元素第一个节点的内容,所以会出现这样的问题。可以用getText
这个辅助方法来解决:这里可以直接修改最后一行即可:
这里的getText只是简单的实现,比如下面的xml文本会打印
abdc
,应该可以达到你的要求。html.select(".content")
这个可能需要更多的选择器限定一下。另外只是大概写了下BeautifulSoup
如何运作的,具体需求可以查看手册:Beautiful Soup 文档