1. 程式人生 > >Python爬蟲從入門到成妖之3-----Scrapy框架的命令行詳解

Python爬蟲從入門到成妖之3-----Scrapy框架的命令行詳解

參數 成了 openssl 入門 文件中 crawler 1.0 使用 lob

創建爬蟲項目

scrapy startproject 項目名

例子如下:

E:\crawler>scrapy startproject test1
New Scrapy project test1, using template directory d:\\python36\\lib\\site-packages\\scrapy\\templates\\project, created in:
    E:\crawler\test1

You can start your first spider with:
    cd test1
    scrapy genspider example example.com

E:\crawler
>

這個時候爬蟲的目錄結構就已經創建完成了,目錄結構如下:

技術分享圖片

接著我們按照提示可以生成一個spider,這裏以百度作為例子,生成spider的命令格式為;
scrapy genspider 爬蟲名字 爬蟲的網址

E:\crawler\test1>scrapy genspider baiduSpider baidu.com
Created spider baiduSpider using template basic in module:
  test1.spiders.baiduSpider

E:\crawler\test1>

關於命令詳細使用

命令的使用範圍

這裏的命令分為全局的命令和項目的命令,全局的命令表示可以在任何地方使用,而項目的命令只能在項目目錄下使用

全局的命令有:
startproject
genspider
settings
runspider
shell
fetch
view
version

項目命令有:
crawl
check
list
edit
parse
bench

startproject
這個命令沒什麽過多的用法,就是在創建爬蟲項目的時候用

genspider
用於生成爬蟲,這裏scrapy提供給我們不同的幾種模板生成spider,默認用的是basic,我們可以通過命令查看所有的模板

E:\crawler\test1>scrapy genspider -l
Available templates:
  basic
  crawl
  csvfeed
  xmlfeed

E:\crawler\test1
>

當我們創建的時候可以指定模板,不指定默認用的basic,如果想要指定模板則通過
scrapy genspider -t 模板名字

E:\crawler\test1>scrapy genspider -t crawl zhihuspider zhihu.com
Created spider zhihuspider using template crawl in module:
  test1.spiders.zhihuspider

E:\crawler\test1>

crawl

這個是用去啟動spider爬蟲格式為:
scrapy crawl 爬蟲名字
這裏需要註意這裏的爬蟲名字和通過scrapy genspider 生成爬蟲的名字是一致的

check

用於檢查代碼是否有錯誤,scrapy check

list
scrapy list列出所有可用的爬蟲

fetch
scrapy fetch url地址
該命令會通過scrapy downloader 講網頁的源代碼下載下來並顯示出來

這裏有一些參數:
--nolog 不打印日誌
--headers 打印響應頭信息
--no-redirect 不做跳轉

view
scrapy view url地址
該命令會講網頁document內容下載下來,並且在瀏覽器顯示出來

技術分享圖片

因為現在很多網站的數據都是通過ajax請求來加載的,這個時候直接通過requests請求是無法獲取我們想要的數據,所以這個view命令可以幫助我們很好的判斷

shell
這是一個命令行交互模式
通過scrapy shell url地址進入交互模式
這裏我麽可以通過css選擇器以及xpath選擇器獲取我們想要的內容(xpath以及css選擇的用法會在下個文章中詳細說明),例如我們通過scrapy shell http://www.baidu.com

技術分享圖片

這裏最後給我們返回一個response,這裏的response就和我們通requests請求網頁獲取的數據是相同的。
view(response)會直接在瀏覽器顯示結果
response.text 獲取網頁的文本
下圖是css選擇器的一個簡單用法

技術分享圖片

settings
獲取當前的配置信息
通過scrapy settings -h可以獲取這個命令的所有幫助信息

E:\crawler\test1>scrapy settings -h
Usage
=====
  scrapy settings [options]

Get settings values

Options
=======
--help, -h              show this help message and exit
--get=SETTING           print raw setting value
--getbool=SETTING       print setting value, interpreted as a boolean
--getint=SETTING        print setting value, interpreted as an integer
--getfloat=SETTING      print setting value, interpreted as a float
--getlist=SETTING       print setting value, interpreted as a list

Global Options
--------------
--logfile=FILE          log file. if omitted stderr will be used
--loglevel=LEVEL, -L LEVEL
                        log level (default: DEBUG)
--nolog                 disable logging completely
--profile=FILE          write python cProfile stats to FILE
--pidfile=FILE          write process ID to FILE
--set=NAME=VALUE, -s NAME=VALUE
                        set/override setting (may be repeated)
--pdb                   enable pdb on failure

E:\crawler\test1>

拿一個例子進行簡單的演示:(這裏是我的這個項目的settings配置文件中配置了數據庫的相關信息,可以通過這種方式獲取,如果沒有獲取的則為None)

E:\crawler\test1>scrapy settings  --get=MYSQL_HOST
None

E:\crawler\test1>

runspider
這個和通過crawl啟動爬蟲不同,這裏是scrapy runspider 爬蟲文件名稱
所有的爬蟲文件都是在項目目錄下的spiders文件夾中

version
查看版本信息,並查看依賴庫的信息

E:\crawler\test1>scrapy version
Scrapy 1.5.1

E:\crawler\test1>scrapy version -v
Scrapy       : 1.5.1
lxml         : 4.2.5.0
libxml2      : 2.9.5
cssselect    : 1.0.3
parsel       : 1.5.0
w3lib        : 1.19.0
Twisted      : 18.7.0
Python       : 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
pyOpenSSL    : 18.0.0 (OpenSSL 1.1.0h  27 Mar 2018)
cryptography : 2.3
Platform     : Windows-7-6.1.7601-SP1

E:\crawler\test1>

Python爬蟲從入門到成妖之3-----Scrapy框架的命令行詳解