在parse()Scrapy Spider的方法中,我們可以使用css()on方法response來(lái)抓取需要的信息。例如,我們可以使用response.css("#container")來(lái)獲取以下 HTML 片段。<div id="container"> <div class="sep">test</div> ...</div>在保存到磁盤(pán)之前,我們?nèi)绾胃牟糠?HTML 代碼片段?例如,我想更改<div class="sep">to的文本內(nèi)容1234,以便最終需要的 HTML 片段看起來(lái)像<div id="container"> <div class="sep">1234</div> ...</div>我知道我可以將原始 HTML 片段保存在磁盤(pán)上,然后使用 HTML 解析器來(lái)更改它。然而,這實(shí)際上會(huì)再次解析它,因?yàn)樗呀?jīng)在Scrapy 蜘蛛中的方法response的參數(shù)中被解析了。parse()我查看了Scrapy文檔,只能找到從頁(yè)面獲取信息的方法。如何進(jìn)行集合運(yùn)算?
1 回答

慕慕森
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
Scrapy專(zhuān)門(mén)針對(duì)提取信息;因此,它不提供任何修改 HTML 的功能。
但是,沒(méi)有什么可以阻止您導(dǎo)入您最喜歡的解析器并使用它。
或者,root
選擇器的屬性將使您能夠訪問(wèn)底層 lxml 元素。我相當(dāng)確定您必須使用 lxml 轉(zhuǎn)儲(chǔ)根元素。
Scrapy 僅在您訪問(wèn)后才解析源response.selector
(直接或通過(guò)其中一種提取方法)。
如果你想避免解析兩次,就不要使用它們。
添加回答
舉報(bào)
0/150
提交
取消