Scrapy爬蟲框架 使用流程、框架、儲存模式介紹
阿新 • • 發佈:2018-11-17
Scrapy特色
- 建議 使用 xpath 進行解析 (因為Scrapy集成了xpath介面)
- 高效能爬蟲、多執行緒、資料解析、持久化儲存
- 自動攜帶cookie無需單獨操作
安裝
mac下 pip install scrapy
使用流程
- 終端
cd
目錄scrapy startproject 工程名
(建立專案) - 終端
cd
到下面根目錄scrapy genspider 爬蟲名 起始url
- 編寫配置檔案 setting.py
# 19行 請求身份偽裝user_agent 定義
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'
# 22行 是否遵從robots協議(君子協議)
ROBOTSTXT_OBEY = False
# 開啟管道
- 執行:
scrapy crawl 爬蟲檔名
(--nolog
阻止日誌輸出)
目錄結構
儲存資料
- 磁碟儲存
基於終端
# 保證parse方法返回可迭代物件
# 使用終端指令資料儲存
'''爬蟲必須是返回可迭代物件'''
def parse(self, response):
div_list = response.xpath("//div[@id='content-left']/div")
data_list = []
for div in div_list:
author = div.xpath("./div/a[2]/h2/text()").extract()[0]
content = div.xpath(".//div[@class='content']/span/text()").extract_first()
data_dict = {
'author': author,
'content': content,
}
data_list.append(data_dict)
return data_list
'''終端命令'''
scrapy crawl qiubai -o 儲存檔名.字尾 --nolog
基於管道流程
- 將解析資料存到items物件
- 使用yield 將items交給管道檔案處理
- 在管道檔案pipelines編寫程式碼儲存
- 在setting配置檔案開啟管道
基於管道儲存案例有另一篇我的文章
- 資料庫 請檢視我的另一具體案例部落格