python爬蟲(四):scrapy 【1. 快速上手】
中文文件:http://www.scrapyd.cn/doc/
Scrapy是採用Python開發的一個快速、高層次的螢幕抓取和web抓取框架。
什麼是爬蟲框架?
爬蟲框架是實現爬蟲功能的一個軟體結構和功能元件集合。
爬蟲框架是一個半成品,能夠幫助使用者實現專業網路爬蟲。
應用Scrapy爬蟲框架主要是編寫配置型程式碼
Scrapy也是第三方庫,需要安裝
anaconda安裝scrapy:conda install scrapy
安裝完可以用 conda list 檢視
scrapy常用命令 說明 格式
startproject 建立一個新工程 scrapy startproject <name> [dir]
genspider 建立一個爬蟲 scrapy genspider [options] <name> <domain>
crawl 執行一個爬蟲 scrapy crawl <spider>
settings 獲得爬蟲配置資訊 scrapy settings [options]
list 列出工程中所有爬蟲 scrapy list
shell 啟動URL除錯命令列 scrapy shell [url]
新建專案,在D:\pycharm\workspace目錄:
scrapy startproject scrapy_demo
生成一個叫demo的爬蟲:
cd sciapy_demo
scrapy genspider demo xxx
xxx 是模板中 start_urls 和 allowed_domains 的值
allowed_domains的含義是過濾爬取的域名,不在此範圍內的域名就會被過濾,不會進行爬取。
allowed_domains沒啥用,註釋掉。
spiders目錄下就生成了demo.py
開啟demo.py,在這裡編寫爬蟲
註釋掉allowed_domains,start_urls填寫要爬的網頁(可以為多個),
我們來爬取
在parse函式裡寫解析頁面的程式碼,parse有個引數response
response就是爬取start_urls得到的返回值,response.body就是文字內容了
解析:(儲存為檔案‘demo.html’)
def parse(self, response):
filename = 'demo.html'
with open (filename, 'wb') as f:
f.write(response.body)
執行爬蟲:
(crawl 這個 demo.py檔案,D:\pycharm\workspace\scrapy_demo>)
scrapy crawl demo
結果:
scrapy爬蟲步驟總結:
1. 首先新建專案
scrapy startproject scrapy_demo
2. 生成一個爬蟲(爬蟲名ant,網址xxx)
cd sciapy_demo
scrapy genspider ant xxx
3. 編寫爬蟲(/spiders/ant.py)
填url(start_url)
寫解析頁面(parse函式)
4. 執行爬蟲
scrapy crawl demo
目錄介紹:
scrapy_demo/ 工程名
scrapy.cfg 向伺服器部署Scrapy爬蟲的配置檔案(不需要配置)
scrapy_demo/ app名,同python
spiders/
demo.py 生成的爬蟲模板
__init__ .py 初始化指令碼(不用管)
items.py Items程式碼模板(不用管)
middlewares.py Middlewares程式碼模板(如果要擴充套件middleware功能需要修改)
pipelines.py Pipelines程式碼模板
settings.py scrapy爬蟲的配置檔案(優化爬蟲功能需要改)