通用爬蟲
通用網絡爬蟲 從互聯網中搜集網頁,采集信息,這些網頁信息用於為搜索引擎建立索引從而提供支持,它決定着整個引擎系統的內容是否豐富,信息是否即時,因此其性能的優劣直接影響着搜索引擎的效果。
不扯沒用的,上干貨!
創建項目:
cmd 命令: scrapy startproject 項目名
創建
cmd 命令:scrapy genspider -t crawl 爬蟲名 允許爬取得域名
在spider文件 主爬蟲文件.py中 替換 start_urls 為要爬取的網址!
在rules中進行指定規則:
ps:規則制定時選中的必須是標簽,或正則匹配連接地址(可跳轉性)
rules = (
Rule(LinkExtractor(allow=r'/sort/?st=product&sort=A\[A-Z]'), follow=True), # 參數: allow 正則選擇要滿足的需求特點 deny :一定不取得特點
Rule(LinkExtractor(restrict_xpaths="//a[text()='»']"), follow=True), # 參數 restrict_xpaths 用xpath 反向選擇或手寫xpath取要滿足的需求特點
Rule(LinkExtractor(restrict_xpaths="/html/body/div[4]/div/div[2]/div[4]/div/div[1]/div/a"), callback='parse_data',follow=False), # 拷貝xpath選擇要滿足的需求特點
)
ps:
LinkExtractor() 鏈接提取器 對選中連接或標簽進行操作
follow=True 同位置 繼續 提取需求標簽
follow=False 停止 或 不在 同位置繼續提取需求標簽
clllback='一個函數名' follow=True 時 沒有太大必要使用,除非該頁有需求值 follow=False 時 說明你到了目標數據位置 這是把請求的響應拋給了該函數
而到了函數,就可以利用xpath取值了,封裝進item里就可以了,這里item不需要你實例化了item= {}就可以了 通用爬蟲幫你做了
最后yield item
主爬蟲就寫完了。
然后 --》 ???
然后的是就和普通scrapy一樣了,
settings.py 里配置 在之前寫的博文里有,自行去查看
item.py 里 設置需求數據字段
pipelines.py 對數據隊列 進行操作
Ps:
了解不深,個人看法:
其實理解這個通用爬蟲不難:
就一句話:
需要注意的點就在rules這塊對吧,我的理解就是,這是在宏觀意義上給你要提取輸得位置進行制定規則,可以理解為定位,所有滿足特點的位置就是我需求數據存放的位置!
好了 就到這里! 簡單吧 !
其他的? 自己悟把!哈哈哈!