【小組作業】Web Crawler

  • 2019 年 10 月 7 日
  • 筆記

本文作者:小白蟲(Ms08067實驗室Python滲透小組成員)

前言

<這裡用的scrapy框架,來編寫爬蟲,官方文檔(https://docs.scrapy.org/en/latest/)>

具體功能實現:爬取網站所有鏈接,探測網頁狀態,並加隨機延遲繞過防護。

1、程式碼流程

2、程式碼編寫

2.1 item.py編寫

這裡爬取要目標是爬取網頁所有鏈接。

2.2 link.py 編寫

這裡默認生成的是要爬取的域名,是在使用scrapy命令行生成爬蟲文件時候輸入的域名,為了便於指定爬取域名,所以這裡改成輸入指定域名。然後開始編寫parse函數(parse負責處理response並返回處理的數據以及(/或)跟進的URL,該方法及其他的Request回調函數必須返回一個包含 Request、dict或 Item 的可迭代的對象。)

首先xpath(『//a[@href]』)提取頁面內所有鏈接,之後循環處理url,先調用之前寫好的item,再處理每個url,緊接著繼續使用當前url,迭代爬取。

2.3 seting.py編寫

前面的只要按圖上的配置就可以了,最後一個圖是就是設置隨機延時訪問,scrapy自帶的功能,只要取消注釋就可以了。

還有就是這裡scrapy默認只爬取狀態碼200-300頁面,如果想爬取其他的在這裡添加。

2.4 pipeline.py編寫

這裡主要的就是process_item, 前面的init函數就是,打開要寫入的url文件。

這裡處理寫入過程,先檢測url是否已經存在,然後再添加url』。

這裡是檢測網頁http狀態碼,利用requests庫來獲取網頁狀態碼。

最後,運行程式碼就可以了。效果圖見附錄。

小結

第一次寫講解,講的不好,只是利用scrapy框架實現爬蟲的基本功能,後續我會繼續改進程式碼。

github(https://github.com/buddhalikecat),會把程式碼放上去。

附錄: