1、在任意系統下,可以使用 pip 安裝 Scrapy
pip install scrapy/
確認安裝成功
>>> import scrapy >>> scrapy.version_info (1, 5, 1 )
可以看到 scrapy 的一些命令
$ scrapy
E:\data\job\job>scrapy
Scrapy 1.6.0 - project: job
Usage:
scrapy <command> [options] [args]
Available commands:
bench Run quick benchmark test
check Check spider contracts
crawl Run a spider
edit Edit spider
fetch Fetch a URL using the Scrapy downloader
genspider Generate new spider using pre-defined templates
list List available spiders
parse Parse URL (using its spider) and print the results
runspider Run a self-contained spider (without creating a project)
settings Get settings values
shell Interactive scraping console
startproject Create new project
version Print Scrapy version
view Open URL in browser, as seen by Scrapy
Use "scrapy <command> -h" to see more info about a command
通過上面的兩項檢測,說明 Scrapy 安裝成功了
2、創建一個 Scrapy 項目
在shell中使用 scrapy startproject命令:
scrapy startproject job
創建好的爬蟲的項目目錄文件如下所示
(通常我們不需要手工創建 Spider 文件以及 Spider 類,可以使用 scrapy genspider <SPIDER_NAME> <DOMAIN>命令生成(根鋸模板)它們,該命令的兩個參數分別是 Spider 的名字和多要爬取的預(網站))
$ cd job
$ scrapy genspider books books.toscrape.com
運行后,scrapy genspider 命令創建了文件 job/spider/books.py,並在其中創建了一個BooksSpider 類,代碼如下:
# -*-coding: utf-8 -*- import scrapy cclass BooksSpider(scrapy.Spider): name = 'books' allowed_domains = ['books.toscrape.com'] start_urls = ['http://books.toscrapy.com/'] def parse(self, response): pass
1、分析頁面
(1)數據信息
(2)鏈接信息
2、實現Spider
實現爬蟲的 Python 文件應位於 job/spiders 目錄下,在該目錄下新建文件 51job.py
(1)提取數據
(2)提取鏈接
3、對 Spider 的實現做簡單的說明
(1) name 屬性
一個 Scrapy 醒目中可能有多個爬蟲,每個爬蟲的 name 屬性是其自身的唯一標示,在一個項目中不能有同名的爬蟲,例如 取名為 “books”
(2)start_url 屬性
一個爬蟲總要從某個(或某些)頁面開始爬取,我們成這樣的頁面為其實爬取點,start_url 屬性用來設置一個爬蟲的其實爬取點。比如:“http://books.toscraper.com”.
(3)parse 方法
當一個頁面下載完畢之后,Scrapy 引擎會回調一個我們指定的頁面解析函數(默認為 parse 方法)解析頁面,一個頁面解析韓式同常需要完成以下兩個任務:
<1> 提取頁面中的數據 (使用 XPath 或者 CSS 選擇器)
<2> 提取頁面中的鏈接,並產生對鏈接頁面的下載請求。
頁面解析函數通常被實現為一個生成器函數,每一項從頁面中提取的數據以及每一個鏈接頁面的下載請求都由 yield 語句提交給 Scraoy 引擎
運行爬蟲
在 shell 中執行 scrapy crawl <Spider_Name> 命令運行爬蟲'books',並將爬取的數據存儲到 csv 文件中:
scrapy crawl books -o books.csv
在進行頁面分析時,除了之前使用過的 Chrome 開發者工具之外,另一種常用的工具是
scrapy shell <URL>
他使用戶可以再交互式命令下操作一個 Scrapy 爬蟲,通常我們使用該工具進行前期爬取實驗,從而提高開發效率