scrapy總結
1.scrapy建立
scrapy startproject 名字
2.運作爬蟲檔案
scrapy crawl 名字
setting的設定
ROBOTSTXT_OBEY
robots 協定,也叫機器人協定它用來限定爬蟲程式可以爬取的内容範圍。
在 scrapy 項目的 settings.py 檔案中,預設 ROBOTSTXT_OBEY = True ,即遵守此協定。當爬取内容不符合該協定且仍要爬取時設定 ROBOTSTXT_OBEY = False,不遵守此協定。
一般來說,我們在爬取資訊的時候會将ROBOTSTXT_OBEY改為False。
SPIDER_MIDDLEWARES中間件
一般來說,在設定setting時将裡面的中間件打開,中間件也可以進行更改。詳細資訊請參考官方文檔。
Spider中間件(Middleware)官方文檔
ITEM_PIPELINES,資料庫
連接配接mysql資料庫,在items裡面建立mysql字段,然後再pipelines.py檔案中寫Mysql的邏輯代碼。
Scrapy概述
#Windows平台
1、pip3 install wheel #安裝後,便支援通過wheel檔案安裝軟體,wheel檔案官網:https://www.lfd.uci.edu/~gohlke/pythonlibs
3、pip3 install lxml
4、pip3 install pyopenssl
5、下載下傳并安裝pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/
6、下載下傳twisted的wheel檔案:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
7、執行pip3 install 下載下傳目錄\Twisted-17.9.0-cp36-cp36m-win_amd64.whl
8、pip3 install scrapy
#Linux平台
1、pip3 install scrapy
常用指令
#1 檢視幫助
scrapy -h
scrapy <command> -h
#2 有兩種指令:其中Project-only必須切到項目檔案夾下才能執行,而Global的指令則不需要
Global commands:
startproject #建立項目
scrapy startproject amazon
genspider #建立爬蟲程式 指定名稱 限制爬取的網址
scrapy genspider amzon www.amzon.cn
settings #如果是在項目目錄下,則得到的是該項目的配置
scrapy settings --get BOT_NAME
runspider #運作一個獨立的python檔案,不必建立項目
scrapy runspider amzon.py
shell #scrapy shell url位址 在互動式調試,如選擇器規則正确與否
scrapy shell www.taobao.com
fetch #單純地爬取一個頁面,不打開浏覽器,可以拿到請求頭
scrapy fetch --nolog http://www.baidu.com 不輸出日志
scrapy fetch --nolog --header http://www.baidu.com 不輸出日志 隻檢視頭資訊
view #下載下傳完畢後直接彈出浏覽器,以此可以分辨出哪些資料是ajax請求
scrapy view http://www.baidu.com
version #scrapy version 檢視scrapy的版本,scrapy version -v檢視scrapy依賴庫的版本
scrapy version -v
Project-only commands:
#必須先切換到對應的目錄才能執行
crawl #運作爬蟲,必須建立項目才行,確定配置檔案中ROBOTSTXT_OBEY = False
scrapy crawl amzon
check #檢測項目中有無文法錯誤
scrapy check
list #列出項目中所包含的爬蟲名
scrapy list
edit #編輯器,一般不用
parse #scrapy parse url位址 --callback 回調函數 #以此可以驗證我們的回調函數是否正确
bench #scrapy bentch壓力測試
#3 官網連結
https://docs.scrapy.org/en/latest/topics/commands.html
目錄結構
project_name/
scrapy.cfg
project_name/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
爬蟲1.py
爬蟲2.py
爬蟲3.py
檔案說明:
scrapy.cfg 項目的主配置資訊,用來部署scrapy時使用,爬蟲相關的配置資訊在settings.py檔案中。
items.py 設定資料存儲模闆,用于結構化資料,如:Django的Model
pipelines 資料處理行為,如:一般結構化的資料持久化
settings.py 配置檔案,如:遞歸的層數、并發數,延遲下載下傳等。強調:配置檔案的選項必須大寫否則視為無效,正确寫法USER_AGENT='xxxx'
spiders 爬蟲目錄,如:建立檔案,編寫爬蟲規則
注意:一般建立爬蟲檔案時,以網站域名命名
import sys,os
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
在pycharm中運作爬蟲程式
在項目目錄下建立:entrypoint.py
from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'amzon'])