Scrapy检测标记不关闭
问题描述:
答
有很多的工具和库,尝试修复损坏的HTML/XML内容。然而,由于scrapy已在使用lxml
库解析我们也可以用它来修复损坏的文件:
from lxml import etree
from scrapy import Selector
def parse(self, response):
# lets pretend we have this unclosed <li> in our response
print(response.body)
#"<ul><li>foo</ul>"
# create an lxml parser with recover parameter
parser = etree.XMLParser(recover=True)
# retrieve xml document
broken_body = etree.tostring(response.selector.root)
clean_doc = etree.fromstring(broken_body, parser=parser)
selector = Selector(root=clean_doc)
selector.xpath("//li/text()").extract_first()
# foo
+0
谢谢你Granitosaurus! – Vinceska
请添加错误,如果任何或你的代码,你想放弃,这样我们就可以帮助网站。 – Mani
欢迎来到堆栈溢出!寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者无益。请参阅:如何创建[mcve]。使用“编辑”链接来改善你的*问题* - 不要通过评论添加更多信息。谢谢! – GhostCat