在parse()Scrapy Spider的方法中,我们可以使用css()on方法response来抓取需要的信息。例如,我们可以使用response.css("#container")来获取以下 HTML 片段。<div id="container"> <div class="sep">test</div> ...</div>在保存到磁盘之前,我们如何更改部分 HTML 代码片段?例如,我想更改<div class="sep">to的文本内容1234,以便最终需要的 HTML 片段看起来像<div id="container"> <div class="sep">1234</div> ...</div>我知道我可以将原始 HTML 片段保存在磁盘上,然后使用 HTML 解析器来更改它。然而,这实际上会再次解析它,因为它已经在Scrapy 蜘蛛中的方法response的参数中被解析了。parse()我查看了Scrapy文档,只能找到从页面获取信息的方法。如何进行集合运算?
1 回答
慕慕森
TA贡献1856条经验 获得超17个赞
Scrapy专门针对提取信息;因此,它不提供任何修改 HTML 的功能。
但是,没有什么可以阻止您导入您最喜欢的解析器并使用它。
或者,root
选择器的属性将使您能够访问底层 lxml 元素。我相当确定您必须使用 lxml 转储根元素。
Scrapy 仅在您访问后才解析源response.selector
(直接或通过其中一种提取方法)。
如果你想避免解析两次,就不要使用它们。
添加回答
举报
0/150
提交
取消