Scrapy爬蟲教程之URL解析與遞迴爬取
阿新 • • 發佈:2019-01-27
前面介紹了Scrapy如何實現一個最簡單的爬蟲,但是這個Demo裡只是對一個頁面進行了抓取。在實際應用中,爬蟲一個重要功能是”發現新頁面”,然後遞迴的讓爬取操作進行下去。
發現新頁面的方法很簡單,我們首先定義一個爬蟲的入口URL地址,比如《Scrapy入門教程》中的start_urls,爬蟲首先將這個頁面的內容抓取之後,解析其內容,將所有的連結地址提取出來。這個提取的過程是很簡單的,通過一個html解析庫,將這樣的節點內容提取出來,href引數的值就是一個新頁面的URL。獲取這個URL值之後,將其加入到任務佇列中,爬蟲不斷的從佇列中取URL即可。這樣,只需要為爬蟲定義一個入口的URL,那麼爬蟲就能夠自動的爬取到指定網站的絕大多數頁面。
當然,在具體的實現中,我們還需要對提取的URL做進一步處理:
1. 判斷URL指向網站的域名,如果指向的是外部網站,那麼可以將其丟棄
2. URL去重,可以將所有爬取過的URL存入資料庫中,然後查詢新提取的URL在資料庫中是否存在,如果存在的話,當然就無需再去爬取了。
下面介紹一下如何在Scrapy中完成上述這樣的功能。
我們只需要改寫spider的那個py檔案即可,修改parse()方法程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|