1. 程式人生 > >scrapy 框架基本使用

scrapy 框架基本使用

項目目錄 簡介 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 框架基本使用