scrapy 2.3 蜘蛛

2021-06-03 10:48 更新

spider是定義一個(gè)特定站點(diǎn)(或一組站點(diǎn))如何被抓取的類(lèi),包括如何執(zhí)行抓?。锤欐溄樱┮约叭绾螐捻?yè)面中提取結(jié)構(gòu)化數(shù)據(jù)(即抓取項(xiàng))。換言之,spider是為特定站點(diǎn)(或者在某些情況下,一組站點(diǎn))定義爬行和解析頁(yè)面的自定義行為的地方。

對(duì)于蜘蛛來(lái)說(shuō),抓取周期是這樣的:

  1. 首先生成對(duì)第一個(gè)URL進(jìn)行爬網(wǎng)的初始請(qǐng)求,然后指定一個(gè)回調(diào)函數(shù),該函數(shù)使用從這些請(qǐng)求下載的響應(yīng)進(jìn)行調(diào)用。要執(zhí)行的第一個(gè)請(qǐng)求是通過(guò)調(diào)用 ?start_requests()? (默認(rèn))生成的方法 ?Request? 對(duì)于中指定的URL ?start_urls? 以及 ?parse? 方法作為請(qǐng)求的回調(diào)函數(shù)。
  2. 在回調(diào)函數(shù)中,解析響應(yīng)(網(wǎng)頁(yè))并返回 item objects , ?Request? 對(duì)象,或這些對(duì)象中的一個(gè)不可重復(fù)的對(duì)象。這些請(qǐng)求還將包含回調(diào)(可能相同),然后由scrappy下載,然后由指定的回調(diào)處理它們的響應(yīng)。
  3. 在回調(diào)函數(shù)中,解析頁(yè)面內(nèi)容,通常使用 選擇器 (但您也可以使用beautifulsoup、lxml或任何您喜歡的機(jī)制)并使用解析的數(shù)據(jù)生成項(xiàng)。
  4. 最后,從spider返回的項(xiàng)目通常被持久化到數(shù)據(jù)庫(kù)(在某些 Item Pipeline )或者使用 Feed 導(dǎo)出 .

盡管這個(gè)循環(huán)(或多或少)適用于任何類(lèi)型的蜘蛛,但是為了不同的目的,有不同類(lèi)型的默認(rèn)蜘蛛被捆綁成 Scrapy 。我們將在這里討論這些類(lèi)型。


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)