scrapy 框架基本使用
阿新 • • 發佈:2019-05-11
項目目錄 簡介 ace keyword 選中 遞歸 並發數 class div標簽
scrapy簡介:
Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 其可以應用在數據挖掘,信息處理或存儲歷史數據等一系列的程序中。
其最初是為了頁面抓取 (更確切來說, 網絡抓取 )所設計的, 也可以應用在獲取API所返回的數據(例如 Amazon Associates Web Services ) 或者通用的網絡爬蟲。Scrapy用途廣泛,可以用於數據挖掘、監測和自動化測試
一.基本使用
1. scrapy startproject 項目名稱
- 在當前目錄中創建中創建一個項目文件(類似於Django)
-cd 項目名稱 進入項目目錄
2. scrapy genspider [-t template] <name> <domain>- 創建爬蟲應用
如:
scrapy gensipider -t basic oldboy oldboy.com
scrapy gensipider -t xmlfeed autohome autohome.com.cn
PS:
查看所有命令:scrapy gensipider -l
查看模板命令:scrapy gensipider -d 模板名稱
3. scrapy list
- 展示爬蟲應用列表
4. scrapy crawl 爬蟲應用名稱 --nolog
- 運行單獨爬蟲應用
-----------------------------------------------------二.項目結構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 項目的主配置信息。(真正爬蟲相關的配置信息在settings.py文件中)
- items.py 設置數據存儲模板,用於結構化數據,如:Django的Model
- pipelines 數據處理行為,如:一般結構化的數據持久化
- settings.py 配置文件,如:遞歸的層數、並發數,延遲下載等
- spiders 爬蟲目錄,如:創建文件,編寫爬蟲規則
-----------------------------------------------------------------------------------------------------
三.xpath選擇器基本使用
// 子子孫孫
.// 當前子子孫孫
/ 兒子
/div[@id="i1"] 兒子中div標簽切id為i1
/div[@id="i1"]/text() 獲取某個標簽的文本
obj.extract() 列表中每個字符串=》[]
obj.extract.first() 列表中每個字符串=》列表第一個元素
運用url做選擇
// a[re:test(@href,"/all/hot/recent/\d+")]/@href
註:可在Chrome瀏覽器審查元素中,選中並copy xpath
css選擇器略...
-------------------------------------------------
四.常用函數
- Request是一個封裝用戶請求的類,在回調函數中yield該對象表示繼續訪問
- HtmlXpathSelector用於結構化HTML代碼並提供選擇器功能
- res = HtmlXpathSelector().select()
scrapy 框架基本使用