前面寫過用xpath 方式定位response物件中我們所需要的超連結位址,但如果超連結過多且位置規律性差就不太方便了,現在介紹一種快速提取和過濾超連結位址的方法
1.明確需求
檢視豆瓣圖書中首頁中所有圖書的超連結,先看首頁長這樣的
然後隨便點選一本數,進入圖書的詳情頁,是這樣的
此時我們檢視下瀏覽器的url位址,是這個就是我們要抓取的位址。
2. 建立爬蟲
可以用scrapy genspider命令建立爬蟲,建立後修改類的引數,將自動生成的繼承 scrapy.spider 改為 crawlspider,這樣用自定義的方法接收request請求
from scrapy.spiders import3.引入linkextractor 和 rule先寫乙個不過濾的寫法crawlspider
class
booksubjectspider(crawlspider):
name = '
bookspider
'allowed_domains = ['
book.douban.com']
start_urls = ['
']
from scrapy.spiders import看下結果crawlspider,rule
from scrapy.linkextractors import
linkextractor
class
booksubjectspider(crawlspider):
name = '
bookspider
'allowed_domains = ['
book.douban.com']
start_urls = ['
']rules =(rule(
callback='
parse_item',
follow=true),)
defparse_item(self, response):
print(response.url)
注意這裡出現非圖書詳情頁的url,圖書詳情頁url應該是 subject/數字編號/其他字元.
這時候需要linkextractor,改下這部分**
rules =(rule(再次執行看結果,沒問題了linkextractor(allow=('
subject/(\\d)+/$
')),
callback='
parse_item',
follow=true),)
scrapy爬蟲框架
作者經過幾周的python爬蟲實踐之後,深入學習了一下scrapy這個爬蟲框架,現將一些基本知識和 總結整理一下,以備後查。2.scrapy的命令列使用 這部分網上很多部落格都有總結,不需要背,理解會用主要的命令 startproject crawl fetch list genspider.即可,...
scrapy 爬蟲框架
1.安裝 公升級pip版本 pip install upgrade pip 通過pip安裝scrapy框架 pip install scrapy 安裝成功 只執行scrapy 進行測試是否安裝成功 2.scrapy startproject 爬蟲專案名稱 執行此命令,可以生成乙個爬蟲專案 會預先生成...
爬蟲安裝scrapy
scrapy框架結構清晰,基於twisted的非同步架構可以充分利用計算機資源,是爬蟲做大的必備基礎。本文將講解如何快速安裝此框架並使用起來。2.1 同安裝lxml庫 2.2 安裝twisted 開啟命令提示符視窗,輸入命令 twisted庫安裝成功後,安裝scrapy就簡單了,在命令提示符視窗直接...