Spiders
Spiders 是一些爬蟲類的集合,這些爬蟲定義了爬哪些網站、如何去爬這些網站以及如何去從頁面抽取結構化數據。
換句話說,Spiders是你定義用於爲特定網站(或者在某些情況下是一組網站)抓取和解析頁面的自定義行爲的地方。
對於爬蟲來說,在爬取週期中會經歷以下事情:
1,首先生成抓取第一個URL的初始Requests,然後指定一個回調函數,使用從這些請求下載的響應來調用回調函數。
第一個執行請求通過調用start_requests()方法獲得,該方法默認情況下爲start_urls和parse方法中指定的URL生成Request作爲回調函數。
2, 在回調函數中,解析響應(網頁),並返回帶提取數據的dicts,Item對象,Request對象或這些對象的迭代。
這些請求還將包含一個回調(可能是相同的),然後由Scrapy下載,然後通過指定的回調處理它們的響應。
3,在回調函數中,通常使用選擇器Selectors(但您也可以使用BeautifulSoup,lxml或您喜歡的任何機制)解析頁面內容,並使用解析的數據生成項目。
4,最後,從爬蟲返回的項目通常會持久化到數據庫(在某些Pipeline中)或使用Feed導出寫入文件。
儘管這個週期適用於(或多或少)任何類型的爬蟲,但爲了不同的目的,有不同類型的默認爬蟲捆綁到了Scrapy中。
參考鏈接:https://docs.scrapy.org/en/latest/topics/spiders.html