【发布时间】:2016-03-04 22:44:32
【问题描述】:
我正在尝试从网页(运行脚本时传递其 URL)中捕获一些文本,但它隐藏在没有分配其他属性的段落标记中。我可以收集每个段落标签的内容,但我想从树中删除包含任何关键字列表的任何元素。
我收到以下错误:
tree.remove(elem) TypeError: Argument 'element' has wrong type (预期 lxml.etree._Element,得到 _ElementStringResult)
我知道当我尝试遍历树时返回的是错误的类型,但是我该如何获取元素呢?
示例代码:
#!/usr/bin/python
from lxml import html
from lxml import etree
url = sys.argv[1]
page = requests.get(url)
tree = html.fromstring(page.content)
terms = ['keyword1','keyword2','keyword3','keyword4','keyword5','keyword6','keyword7']
paragraphs = tree.xpath('//p/text()')
for elem in paragraphs:
if any(term in elem for term in terms):
tree.remove(elem)
【问题讨论】: