欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    Scrapy是一個十分強大的爬蟲框架,依賴的庫比較多,至少需要依賴的庫有Twisted 14.0、lxml 3.4和pyOpenSSL 0.14。在不同的平臺環境下,它所依賴的庫也各不相同,所以在安裝之前,最好確保把一些基本庫安裝好。本節就來介紹Scrapy在不同平臺的安裝方法。

    知識結構圖

    相關鏈接

    ※官方網站:https://scrapy.org

    ※官方文檔:https://docs.scrapy.org

    ※PyPI:https://pypi.python.org/pypi/Scrapy

    ※GitHub:https://github.com/scrapy/scrapy

    ※中文文檔:http://scrapy-chs.readthedocs.io

    Anaconda安裝

    這是一種比較簡單的安裝Scrapy的方法(尤其是對于Windows來說),如果你的Python是使用Anaconda安裝的,或者還沒有安裝Python的話,可以使用此方法安裝,這種方法簡單、省力。當然,如果你的Python不是通過Anaconda安裝的,可以繼續看后面的內容。

    關于Anaconda的安裝方式,可以查看1.1節,在此不再贅述。

    如果已經安裝好了Anaconda,那么可以通過conda命令安裝Scrapy,具體如下:

    conda install Scrapy

    #樓主分享一個坑:有個網絡對國外IP的訪問有限制,我用公司網絡從Anaconda的服務器上無法下載,但換成手機熱點就好了。

    Windows下的安裝

    如果你的Python不是使用Anaconda安裝的,可以參考如下方式來一步步安裝Scrapy。

    【安裝lxml】

    lxml的安裝過程請參見1.3.1節,在此不再贅述,此庫非常重要,請一定要安裝成功。

    【安裝pyOpenSSL】

    在官方網站下載wheel文件(詳見https://pypi.python.org/pypi/pyOpenSSL#downloads)即可,如下圖所示。

    下載后利用pip安裝即可:

    pip3 install pyOpenSSL-17.2.0-py2.py3-none-any.whl

    【安裝Twisted】

    到http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下載wheel文件,利用pip安裝即可。

    比如,對于Python 3.6版本、Windows 64位系統,則當前最新版本為Twisted?17.5.0?cp36?cp36m?win_amd64.whl,直接下載即可,如下圖所示。

    然后通過pip安裝:

    pip3 install Twisted?17.5.0?cp36?cp36m?win_amd64.whl

    【安裝PyWin32】

    從官方網站下載對應版本的安裝包即可,鏈接為:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/,如下圖所示。

    比如對于Python 3.6版本,可以選擇下載pywin32-221.win-amd64-py3.6.exe,下載完畢之后雙擊安裝即可。

    注意,這里使用的是Build 221版本,隨著時間推移,版本肯定會繼續更新,最新的版本可以查看https://sourceforge.net/projects/pywin32/files/pywin32/,到時查找最新的版本安裝即可。

    【安裝Scrapy】

    安裝好了以上的依賴庫后,安裝Scrapy就非常簡單了,這里依然使用pip,命令如下:

    pip3 install Scrapy

    等待命令結束,如果沒有報錯,就證明Scrapy已經安裝好了。

    Linux下的安裝

    在Linux下的安裝方式依然分為兩類平臺來介紹。

    CentOS和Red Hat

    在CentOS和Red Hat下,首先確保一些依賴庫已經安裝,運行如下命令:

    sudo yum groupinstall -y development tools
    sudo yum install -y epel-release libxslt-devel libxml2-devel openssl-devel

    最后利用pip安裝Scrapy即可:

    pip3 install Scrapy

    Ubuntu、Debian和Deepin

    在Ubuntu、Debian和Deepin平臺下,首先確保一些依賴庫已經安裝,運行如下命令:

    sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev

    然后利用pip安裝Scrapy即可:

    pip3 install Scrapy

    運行完畢后,就完成Scrapy的安裝了。

    Mac下的安裝

    在Mac下,首先也是進行依賴庫的安裝。

    在Mac上構建Scrapy的依賴庫需要C編譯器以及開發頭文件,它一般由Xcode提供,具體命令如下:

    xcode-select --install

    隨后利用pip安裝Scrapy即可:

    pip3 install Scrapy

    驗證安裝

    安裝之后,在命令行下輸入scrapy,如果出現類似如下圖所示的結果,就證明Scrapy安裝成功了。

    常見錯誤

    在安裝過程中,常見的錯誤匯總如下。

    pkg_resources.VersionConflict: (six 1.5.2 (/usr/lib/python3/dist-packages), Requirement.parse('six>=1.6.0'))

    這是six包版本過低出現的錯誤。six包是一個提供兼容Python 2和Python 3的庫,這時升級six包即可:

    sudo pip3 install -U six
    c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory

    這是在Linux下常出現的錯誤,缺少libffi庫造成的。什么是libffi?FFI的全名是Foreign Function Interface,通常指的是允許以一種語言編寫的代碼調用另一種語言的代碼。而libffi庫只提供了最底層的、與架構相關的、完整的FFI。此時安裝相應的庫即可。

    在Ubuntu和Debian下,直接執行如下命令即可:

    sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

    在CentOS和Red Hat下,直接執行如下命令即可:

    sudo yum install gcc libffi-devel python-devel openssl-devel
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build/cryptography/

    這是缺少加密的相關組件,此時利用pip安裝即可:

    pip3 install cryptography
    ImportError: No module named 'packaging'

    這是因為缺少packaging包出現的錯誤,這個包提供了Python包的核心功能,此時利用pip安裝即可。

    ImportError: No module named '_cffi_backend'

    這個錯誤表示缺少cffi包,直接使用pip安裝即可:

    pip3 install cffi
    ImportError: No module named 'pyparsing'

    這個錯誤表示缺少pyparsing包,直接使用pip安裝即可:

    pip3 install pyparsing appdirs

    【上節】「從零開始Python爬蟲」1.8.1 Pyspider的安裝

    Python3環境安裝Scrapy爬蟲框架過程

    1. 安裝wheel

    pip install wheel

    安裝檢查:

    2. 安裝lxml pip install lxml-4.2.1-cp36-cp36m-win_amd64.whl

    去https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 下載對應的Python版本

    選擇對于的版本進行下載:cp36代表的是Python版本是多少,這里我的版本是python36,操作系統是win64位的,所以我下載文件

    lxml-4.2.1-cp36-cp36m-win_amd64.whl

    下載下來的Python36 lxml 版本

    在DOS下切換到下載的目錄下(cd D:\soft\Scrapy環境搭建)

    執行:pip install lxml-4.2.1-cp36-cp36m-win_amd64.whl

    3. 安裝zope.interface

    到官方網站https://pypi.python.org/pypi/zope.interface#downloads下載對應版本的wheel文件,如果沒有登錄,需要登錄。

    在DOS下切換到下載的目錄下(cd D:\soft\Scrapy環境搭建)。

    執行:pip install zope.interface-4.5.0-cp36-cp36m-win_amd64.whl

    4. 安裝pyOpenSSL

    官方網站下載wheel文件,https://pypi.python.org/pypi/pyOpenSSL#downloads

    下載pyOpenSSL-17.5.0-py2.py3-none-any.whl

    在DOS下切換到下載的目錄下(cd D:\soft\Scrapy環境搭建)。

    執行:pip install pyOpenSSL-17.5.0-py2.py3-none-any.whl

    5. 安裝Twisted

    同理,http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下載wheel文件,利用pip安裝即可。

    如Python 3.6版本,Windows 64位系統,下載

    Twisted-17.9.0-cp36-cp36m-win_amd64.whl,然后pip安裝。

    在DOS下切換到下載的目錄下

    執行:pip install Twisted-17.9.0-cp36-cp36m-win_amd64.whl

    6. 安裝pywin32

    從官方網站 https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/ 下載對應版本的安裝包安裝。

    下載

    安裝:

    在安裝時會出現提示python3.6-32在注冊表中不存在。

    處理windos64位下python3.6安裝pywin32的問題的方法

    方法一

    這個報的錯是因為注冊表問題,于是百度到下面一段代碼

    這段代碼執行以后可以自動將py3.6安裝目錄直接添加進注冊表,檢查了下注冊表,的確出現了。

    第一步按“win+R”或者點擊開始菜單,找到運行,在運行輸入框里面輸入“regedit”,如下圖所示:

    在HKEY-CURRENT_USER–Software–Python–PythonCore–會發現3.6-32文件夾

    方法二: 把注冊表3.6導出,名稱另存為3.6-32,再導入注冊表,重啟電腦即可。

    處理完之后,就可以安裝pywin32-220.win-amd64-py3.6

    7. 安裝Scrapy pip install Scrapy

    最后安裝Scrapy即可,依然使用pip,命令如下:

    Scrapy 安裝成功驗證

    制作 Scrapy 爬蟲一共需要4步:

    • 新建項目 (scrapy startproject xxx):新建一個新的爬蟲項目
    • 明確目標 (編寫items.py):明確你想要抓取的目標
    • 制作爬蟲 (spiders/xxspider.py):制作爬蟲開始爬取網頁
    • 存儲內容 (pipelines.py):設計管道存儲爬取內容

    步驟:

    一. 新建項目(scrapy startproject)

    1. 新建一個文件夾存放scrapy項目(D:\爬蟲_script\scrapy_project)。

    2.從dos下進入到該目錄下

    3.新建一個新的爬蟲項目:scrapy startproject mySpiter

    下面來簡單介紹一下各個主要文件的作用:

    scrapy.cfg :項目的配置文件

    mySpider/ :項目的Python模塊,將會從這里引用代碼

    mySpider/items.py :項目的目標文件

    mySpider/pipelines.py :項目的管道文件

    mySpider/settings.py :項目的設置文件

    mySpider/spiders/ :存儲爬蟲代碼目錄

    二、明確目標(mySpider/items.py)

    我們打算抓取:http://www.itcast.cn/channel/teacher.shtml 網站里的所有講師的姓名、職稱和個人信息。

    打開mySpider目錄下的items.py

    Item 定義結構化數據字段,用來保存爬取到的數據,有點像Python中的dict,但是提供了一些額外的保護減少錯誤。

    可以通過創建一個 scrapy.Item 類, 并且定義類型為 scrapy.Field的類屬性來定義一個Item(可以理解成類似于ORM的映射關系)。

    接下來,創建一個ItcastItem 類,和構建item模型(model)。

    import scrapy

    class ItcastItem(scrapy.Item):

    name=scrapy.Field()

    level=scrapy.Field()

    info=scrapy.Field()

    三、制作爬蟲 (spiders/itcastSpider.py)

    爬蟲功能要分兩步:

    1. 爬數據

    • 在當前目錄下輸入命令,將在mySpider/spider目錄下創建一個名為itcast的爬蟲,并指定爬取域的范圍:
    • 打開 mySpider/spider目錄里的 itcast.py,默認增加了下列代碼:
    scrapy genspider itcast "itcast.cn"
    import scrapy
     
    class ItcastSpider(scrapy.Spider):
     name="itcast"
     allowed_domains=["itcast.cn"]
     start_urls=(
     'http://www.itcast.cn/',
     )
     
     def parse(self, response):
     pass
    

    其實也可以由我們自行創建itcast.py并編寫上面的代碼,只不過使用命令可以免去編寫固定代碼的麻煩

    要建立一個Spider, 你必須用scrapy.Spider類創建一個子類,并確定了三個強制的屬性 和 一個方法。

    • name="" :這個爬蟲的識別名稱,必須是唯一的,在不同的爬蟲必須定義不同的名字。
    • allow_domains=[] 是搜索的域名范圍,也就是爬蟲的約束區域,規定爬蟲只爬取這個域名下的網頁,不存在的URL會被忽略。
    • start_urls=() :爬取的URL元祖/列表。爬蟲從這里開始抓取數據,所以,第一次下載的數據將會從這些urls開始。其他子URL將會從這些起始URL中繼承性生成。
    • parse(self, response) :解析的方法,每個初始URL完成下載后將被調用,調用的時候傳入從每一個URL傳回的Response對象來作為唯一參數,主要作用如下:
    1. 負責解析返回的網頁數據(response.body),提取結構化數據(生成item)
    2. 生成需要下一頁的URL請求。

    將start_urls的值修改為需要爬取的第一個url

    start_urls=("http://www.itcast.cn/channel/teacher.shtml",)
    

    修改parse()方法

    def parse(self, response):
     filename="teacher.html"
     open(filename, 'w').write(response.body)
    

    然后運行一下看看,在mySpider目錄下執行:

    scrapy crawl itcast
    

    是的,就是 itcast,看上面代碼,它是 ItcastSpider 類的 name 屬性,也就是使用 scrapy genspider命令的唯一爬蟲名。

    運行之后,如果打印的日志出現 [scrapy] INFO: Spider closed (finished),代表執行完成。 之后當前文件夾中就出現了一個 teacher.html 文件,里面就是我們剛剛要爬取的網頁的全部源代碼信息。

    2. 取數據

    • 爬取整個網頁完畢,接下來的就是的取過程了,首先觀察頁面源碼:

    <div class="li_txt">
     <h3> xxx </h3>
     <h4> xxxxx </h4>
     <p> xxxxxxxx </p>
    

    保存數據

    scrapy保存信息的最簡單的方法主要有四種,-o 輸出指定格式的文件,,命令如下:

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有