为了账号安全,请及时绑定邮箱和手机立即绑定

如何在保存到磁盘之前更改 Scrapy 抓取的网页的一部分?

如何在保存到磁盘之前更改 Scrapy 抓取的网页的一部分?

猛跑小猪 2023-10-31 14:35:10
在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(直接或通过其中一种提取方法)。
如果你想避免解析两次,就不要使用它们。


查看完整回答
反对 回复 2023-10-31
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信