Scrapy是什麼?爬蟲框架(Scrapy)簡介、安裝與啓動(虛擬環境安裝方法,pycharm安裝報錯解決方法) ๑乛◡乛๑ Scrapy框架使用方法

Scrapy簡介

Scrapy是一個爲了爬取網站數據,提取結構性數據而編寫的應用框架,我們只需要實現少量的代碼,就能夠快速的抓取。
Scrapy使用了Twisted異步網絡框架,可以加快我們的下載速度。
也就是說,你是用scrapy後就不用自行在考慮多任務(多線程、多進程、協程)等問題了,這些問題scrapy這個框架會實現幫你處理好你所需要的。同時Scrapy中有很多方便的功能,比如說連接提取器,圖片下載器,自動登錄等。
下圖爲一個scrapy爬蟲框架的流程。
在這裏插入圖片描述
從上圖可以看出,使用Scrapy的一個大致流程,

  1. 指定第一個URL放入調度器
  2. 下載器會從調取器中讀取URL並自動訪問下載,傳入爬蟲
  3. 爬蟲將提取的URL在此傳入調度器,提取的數據傳入管道進行保存
  4. 重複上述操作,直到完成調度器中所有的URL

初看scrapy可能你會覺得這比requests不是根據複雜了嗎。的確相比於requests,scrapy的學習成本更高,但學會後,使用起來會比requests要更加高效,這裏的高效不僅是爬取效率上,在代碼編寫上同樣更加高效,寫更少的代碼就能實現更豐富的功能。scrapy是一個爬蟲框架,而requests是一個庫。

Scrapy安裝

pip install scrapy,pycharm也可以使用可視化界面安裝,上面的操作就不解釋了,有Python基礎的應該不會看不懂。如果你連基本的Python基礎都沒有,學習Scrapy對你來說會比較困難,建議先把Python基礎學好。

常見安裝報錯

Scrapy是一個依賴衆多庫(zope.interface、Twisted、pyOpenSSL、pywin32…)的庫,安裝他時會出現各式各樣的問題,大部分問題是因爲缺少c++環境導致的,而需要用到c++環境的庫是Twisted,也就是說大部分導致我們安裝失敗的原因是Twisted造成的
在這裏插入圖片描述
首先你要確保你真的擁有c++環境
在這裏插入圖片描述
如果沒有可以去微軟官網下載
在這裏插入圖片描述
如果你已經有c++環境卻還是報了當前的錯誤,你可以使用下列方法去嘗試解決(碰到此問題大多數可能是因爲使用了虛擬環境造成的,在虛擬環境中就算安裝了C++環境也經常出現無法找到的情況。)

虛擬環境報錯解決方法

現在全局環境中安裝scrapy,然後在將其移動到虛擬環境中,python會講包放在Python安裝目錄\Lib\site-packages下,全局環境中默認只有pip和setuptools兩個包,我們可以現在全局環境中安裝好scrapy再將其移動到虛擬環境中,虛擬環境的位置也同樣在Python虛擬環境目錄\Lib\site-packages
在這裏插入圖片描述
如果全局環境中安裝scrapy還是報錯,我們可以嘗試下載離線的Twisted(http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted)進行安裝,
在這裏插入圖片描述
安裝好後的在Python環境\Scripts目錄下能看見一個scrapy.exe纔算成功
在這裏插入圖片描述

Scrapy官方建議

儘管可以使用pip在Windows上安裝Scrapy,但我們建議您安裝Anaconda或Miniconda並使用conda - forge頻道中的軟件包 ,這樣可以避免大多數安裝問題。
PS:看來官方是知道pip存在的一堆問題,希望能儘快解決。

Scrapy創建

安裝完上述環境後你可以先嚐試在cmd中輸入scrapy
在這裏插入圖片描述
如果沒有報錯,這證明安裝成功已經可以使用了,如果沒有出現此提示,請將Scrapy所在的環境(一半不出現的問題就是你安裝到了虛擬環境,只需要將虛擬環境放入全局變量中即可)
在這裏插入圖片描述

我們先cd到一個存放爬蟲的目錄,因爲執行下面的語句會自動生成一個文件夾其中攜帶一些配置文件
scrapy startproject 爬蟲名(只支持英文和下劃線)
創建好爬蟲項目文件夾後我們先cd進入創建的爬蟲項目,然後執行下列語句,即可生成一個爬蟲目標
scrapy genspider 爬蟲名 "爬取網址"
scrapy genspider demo "demo.cn"
生成的爬蟲會保存在spiders中

項目目錄解析

我們使用scrapy startproject會自動幫我們創建一些目錄和文件
在這裏插入圖片描述

目錄 作用
spiders 存放爬蟲文件,其中包含爬蟲的業務邏輯(爬取那些網站)
items 封裝數據
middlewares 中間件(爬蟲中間件和下載中間件)
pipelines 管道,數據保存
settings 設置文件

啓動爬蟲

我們創建的爬蟲(scrapy genspider 爬蟲名 "爬取網址")會自動進入spiders文件夾中
如何啓動爬蟲,有兩種方法,一直是從命令行啓動
啓動爬蟲我們有兩種方式

  1. 命令行啓動
    命令行輸入
    scrapy crawl 爬蟲名
  2. .py文件啓動
    在項目文件夾中創建一個.py文件,名稱隨意(和scrapy.cfg同級)
    其中寫入下列代碼
from scrapy import cmdline

cmdline.execute("scrapy crawl 爬蟲名".split())

啓動此項目即可啓動指定的爬蟲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章