scrapy爬蟲學習系列一:scrapy爬蟲環境的准備


系列文章列表:

scrapy爬蟲學習系列一:scrapy爬蟲環境的准備:       http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_007_scrapy01.html

scrapy爬蟲學習系列二:scrapy簡單爬蟲樣例學習:  http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_007_scrapy02.html

scrapy爬蟲學習系列三:scrapy部署到scrapyhub上:   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_004_scrapyhub.html

scrapy爬蟲學習系列四:portia的學習入門:       http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_010_scrapy04.html

scrapy爬蟲學習系列五:圖片的抓取和下載:                 http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_011_scrapy05.html

scrapy爬蟲學習系列六:官方文檔的學習:                     https://github.com/zhaojiedi1992/My_Study_Scrapy

1.scrapy簡介

Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。

官方簡介地址:https://docs.scrapy.org/en/latest/topics/architecture.html

中文的簡介地址:http://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/architecture.html    這個版本才舊了,不建議看了(英文的是1.4的, 這個是0.24)

1.1 scrapy基礎架構

1.2 各個組件簡介

Scrapy Engine

引擎負責控制數據流在系統中所有組件中流動,並在相應動作發生時觸發事件。 詳細內容查看下面的數據流(Data Flow)部分。

調度器(Scheduler)

調度器從引擎接受request並將他們入隊,以便之后引擎請求他們時提供給引擎。

下載器(Downloader)

下載器負責獲取頁面數據並提供給引擎,而后提供給spider。

Spiders

Spider是Scrapy用戶編寫用於分析response並提取item(即獲取到的item)或額外跟進的URL的類。 每個spider負責處理一個特定(或一些)網站。 更多內容請看 Spiders

Item Pipeline

Item Pipeline負責處理被spider提取出來的item。典型的處理有清理、 驗證及持久化(例如存取到數據庫中)。 更多內容查看 Item Pipeline

下載器中間件(Downloader middlewares)

下載器中間件是在引擎及下載器之間的特定鈎子(specific hook),處理Downloader傳遞給引擎的response。 其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能。更多內容請看 下載器中間件(Downloader Middleware)

1.3數據流(Data flow)

Scrapy中的數據流由執行引擎控制,其過程如下:

  1. 引擎打開一個網站(open a domain),找到處理該網站的Spider並向該spider請求第一個要爬取的URL(s)。
  2. 引擎從Spider中獲取到第一個要爬取的URL並在調度器(Scheduler)以Request調度。
  3. 引擎向調度器請求下一個要爬取的URL。
  4. 調度器返回下一個要爬取的URL給引擎,引擎將URL通過下載中間件(請求(request)方向)轉發給下載器(Downloader)。
  5. 一旦頁面下載完畢,下載器生成一個該頁面的Response,並將其通過下載中間件(返回(response)方向)發送給引擎。
  6. 引擎從下載器中接收到Response並通過Spider中間件(輸入方向)發送給Spider處理。
  7. Spider處理Response並返回爬取到的Item及(跟進的)新的Request給引擎。
  8. 引擎將(Spider返回的)爬取到的Item給Item Pipeline,將(Spider返回的)Request給調度器。
  9. (從第二步)重復直到調度器中沒有更多地request,引擎關閉該網站。

2.環境准備(主要是在window下)

安裝指南:https://docs.scrapy.org/en/latest/intro/install.html

中文的安裝指南:http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html

2.1 安裝python版本

  可以從https://www.anaconda.com/download/下載一個python,省了后期各種麻煩。

2.2 安裝scrapy

使用conda安裝

conda install -c conda-forge scrapy

 或者使用pip安裝

pip install Scrapy

如果網絡不好, 可以參考下這個地址: https://www.cnblogs.com/microman/p/6107879.html

2.3 下載為win32

從http://sourceforge.net/projects/pywin32/ 選擇和python版本和操作系統對應的版本下載安裝。

官方描述了為何需要win32 :You need to install pywin32 because of this Twisted bug.

詳細信息可以看看官方網頁:https://docs.scrapy.org/en/latest/faq.html#scrapy-crashes-with-importerror-no-module-named-win32api

 2.4提示c++ build(可選)

請安裝cmd終端的提示,去指定的網址提示去下載build exe安裝程序,安裝后重新啟動下,我們使用的python是cpython,所以依賴c的環境,如果你的電腦安裝有vs2015,vs2017
這些c的環境都是有的。這里就可以不用安裝了。

如果提示有這個信息。  error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

你可以參考下這個地址: https://stackoverflow.com/questions/29846087/microsoft-visual-c-14-0-is-required-unable-to-find-vcvarsall-bat

如果twisted無法安裝,建議去這個地方https://pypi.python.org/pypi/Twisted/ 下載,自行安裝。然后去安裝scrapy。

2.5 配置環境變量

將你的python.exe 所在的目錄和子目錄Scripts目錄都添加到PATH環境變量中去。

比如C:\Python2.7\;C:\Python2.7\Scripts\;

2.6 測試python 和scrapy

C:\Users\Administrator>python
Python 3.6.1 |Anaconda custom (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import scrapy
>>>

2.7 ipython  或者bpython的安裝

ipython和bpython都是python的解析器,在cmd終端下提供

ipython的安裝相對簡單,使用如下命令即可安裝

C:\Users\Administrator>conda install ipython
或者
C:\Users\Administrator>pip install ipython

如果你是在linux下編譯安裝ipython可以參考下我的另一篇博客:http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_001.html

bpython的安裝有點問題:

可以參看我的另一篇博客:http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_006_bpython.html

環境准備好了。 那我們就可以開始scrapy的入門學習了。

2.8開發環境

我這里使用pycharm 軟件去開發python, 當然小伙伴們也是可以使用其他的開發環境, 我這里推薦下打開也可以試試vs code 去搭建python開發環境。

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM