其流程能夠描述以下:python
注意:cookie
建立一個scrapy項目:scrapy startproject 項目名
併發
生成一個爬蟲:scrapy genspider 爬蟲名 容許爬取的範圍
dom
提取數據:完善spider,使用xpath等方法
scrapy
保存數據:pipeline中保存數據
ide
命令:scrapy startproject +<項目名字>
函數
示例:scrapy startproject myspider
url
生成的目錄和文件結果以下:spa
settings.py
中的重點字段和內涵3d
USER_AGENT
設置uaROBOTSTXT_OBEY
是否遵照robots協議,默認是遵照CONCURRENT_REQUESTS
設置併發請求的數量,默認是16個DOWNLOAD_DELAY
下載延遲,默認無延遲COOKIES_ENABLED
是否開啓cookie,即每次請求帶上前一次的cookie,默認是開啓的DEFAULT_REQUEST_HEADERS
設置默認請求頭SPIDER_MIDDLEWARES
爬蟲中間件,設置過程和管道相同DOWNLOADER_MIDDLEWARES
下載中間件命令:scrapy genspider +<爬蟲名字> + <容許爬取的域名>
生成的目錄和文件結果以下:
完善spider即經過方法進行數據的提取等操作:
注意:
response.xpath
方法的返回結果是一個相似list的類型,其中包含的是selector對象,操做和列表同樣,可是有一些額外的方法extract()
返回一個包含有字符串的列表extract_first()
返回列表中的第一個字符串,列表爲空沒有返回None
爲何要使用yield?
注意:
BaseItem
,Request
,dict
,None
pipeline在settings中可以開啓多個,爲何須要開啓多個?
pipeline使用注意點
return item
,不然後一個pipeline取到的數據爲None值