當前位置:首頁 » 編程語言 » scrapypython35

scrapypython35

發布時間: 2022-10-02 07:29:46

⑴ scrapy和python有什麼關系

有些人問,開發網路爬蟲應該選擇Nutch、Crawler4j、WebMagic、scrapy、WebCollector還是其他的?這里按照我的經驗隨便扯淡一下:上面說的爬蟲,基本可以分3類:1.分布式爬蟲:Nutch2.JAVA單機爬蟲:Crawler4j、WebMagic、WebCollector3.非JAVA單機爬蟲:scrapy第一類:分布式爬蟲爬蟲使用分布式,主要是解決兩個問題:1)海量URL管理2)網速現在比較流行的分布式爬蟲,是Apache的Nutch。但是對於大多數用戶來說,Nutch是這幾類爬蟲里,最不好的選擇,理由如下:1)Nutch是為搜索引擎設計的爬蟲,大多數用戶是需要一個做精準數據爬取(精抽取)的爬蟲。Nutch運行的一套流程里,有三分之二是為了搜索引擎而設計的。對精抽取沒有太大的意義。也就是說,用Nutch做數據抽取,會浪費很多的時間在不必要的計算上。而且如果你試圖通過對Nutch進行二次開發,來使得它適用於精抽取的業務,基本上就要破壞Nutch的框架,把Nutch改的面目全非,有修改Nutch的能力,真的不如自己重新寫一個分布式爬蟲框架了。2)Nutch依賴hadoop運行,hadoop本身會消耗很多的時間。如果集群機器數量較少,爬取速度反而不如單機爬蟲快。3)Nutch雖然有一套插件機制,而且作為亮點宣傳。可以看到一些開源的Nutch插件,提供精抽取的功能。但是開發過Nutch插件的人都知道,Nutch的插件系統有多蹩腳。利用反射的機制來載入和調用插件,使得程序的編寫和調試都變得異常困難,更別說在上面開發一套復雜的精抽取系統了。而且Nutch並沒有為精抽取提供相應的插件掛載點。Nutch的插件有隻有五六個掛載點,而這五六個掛載點都是為了搜索引擎服務的,並沒有為精抽取提供掛載點。大多數Nutch的精抽取插件,都是掛載在「頁面解析」(parser)這個掛載點的,這個掛載點其實是為了解析鏈接(為後續爬取提供URL),以及為搜索引擎提供一些易抽取的網頁信息(網頁的meta信息、text文本)。4)用Nutch進行爬蟲的二次開發,爬蟲的編寫和調試所需的時間,往往是單機爬蟲所需的十倍時間不止。了解Nutch源碼的學習成本很高,何況是要讓一個團隊的人都讀懂Nutch源碼。調試過程中會出現除程序本身之外的各種問題(hadoop的問題、hbase的問題)。5)很多人說Nutch2有gora,可以持久化數據到avro文件、hbase、mysql等。很多人其實理解錯了,這里說的持久化數據,是指將URL信息(URL管理所需要的數據)存放到avro、hbase、mysql。並不是你要抽取的結構化數據。其實對大多數人來說,URL信息存在哪裡無所謂。6)Nutch2的版本目前並不適合開發。官方現在穩定的Nutch版本是nutch2.2.1,但是這個版本綁定了gora-0.3。如果想用hbase配合nutch(大多數人用nutch2就是為了用hbase),只能使用0.90版本左右的hbase,相應的就要將hadoop版本降到hadoop0.2左右。而且nutch2的官方教程比較有誤導作用,Nutch2的教程有兩個,分別是Nutch1.x和Nutch2.x,這個Nutch2.x官網上寫的是可以支持到hbase0.94。但是實際上,這個Nutch2.x的意思是Nutch2.3之前、Nutch2.2.1之後的一個版本,這個版本在官方的SVN中不斷更新。而且非常不穩定(一直在修改)。所以,如果你不是要做搜索引擎,盡量不要選擇Nutch作為爬蟲。有些團隊就喜歡跟風,非要選擇Nutch來開發精抽取的爬蟲,其實是沖著Nutch的名氣(Nutch作者是DougCutting),當然最後的結果往往是項目延期完成。如果你是要做搜索引擎,Nutch1.x是一個非常好的選擇。Nutch1.x和solr或者es配合,就可以構成一套非常強大的搜索引擎了。如果非要用Nutch2的話,建議等到Nutch2.3發布再看。目前的Nutch2是一個非常不穩定的版本。

⑵ Python安裝Scrapy出現以下錯誤怎麼辦

scapy安裝的錯誤有幾種類型。
因為網路限制,你無法自動下載依賴的庫
因為版本沖突問題,導致你安裝scapy時無法完成安裝,或者是安裝無法正確使用
因為編譯的位數不同64位和32位不同,導致的問題
解決辦法:
簡單的解決辦法。如果scrapy對你很重要。重新安裝一套python2.7然後從頭安裝scrapy,可以從pypi網站上下載。也可以從unofficial來源,一口氣安裝好的包。
耐心的解決辦法。把scrapy的源碼拿過來,執行python
setup.py
install,遇到哪個包不好用,就替換掉。辦法是將那個包的源代碼拿過來,先刪除site-packages里的相應包,再手工執行python
setup.py
install。要有心理准備,很可能需要vc++
2010的編譯器。
最簡單的辦法,使用pip
install
scrapy。
如果你是在ubuntu下面apt-get
install
python-scrapy就搞定了。

⑶ python 怎麼安裝scrapy

我們將需要 Scrapy以及 BeautifulSoup用於屏幕抓取,SQLAlchemy用於存儲數據。
創建虛擬環境(按需)
virtualenv --no-site-packages --python=2.7 ScrapyEnv
[python虛擬環境配置]
安裝scrapy
unix
直接通過 pip 命令安裝
pip install Scrapy
Windows
1. 下載包的編譯版本完成簡易安裝
需要手工安裝 scrapy 的一些依賴:pywin32、pyOpenSSL、Twisted、lxml 和 zope.interface。
2. 使用pip安裝
首先也要安裝pywin32的py2.7版本http://sourceforge.net/projects/pywin32/files/,再安裝scrapy就ok了pip install Scrapy,它會自動安裝依賴的包pyOpenSSL、Twisted、lxml 、six等等。
如果使用的是virtualenv要這樣安裝pywin32:
c:\> D:\python27\Lib\site-packages\pywin32.pth E:\mine\python_workspace\ScrapyEnv\Lib\site-packages\pywin32.pth
將其內容改為:
D:\python27\Lib\site-packages\win32
D:\python27\Lib\site-packages\win32\lib
D:\python27\Lib\site-packages\Pythonwin
[linux和windows下安裝python拓展包
驗證安裝是否成功
通過在python命令行下輸入import scrapy驗證你的安裝,如果沒有返回內容,那麼你的安裝已就緒。

⑷ 如何在scrapy框架下,用python實現爬蟲自動跳轉頁面來抓去網頁內容

Scrapy是一個用Python寫的Crawler Framework,簡單輕巧,並且非常方便。Scrapy使用Twisted這個非同步網路庫來處理網路通信,架構清晰,並且包含了各種中間件介面,可以靈活地完成各種需求。Scrapy整體架構如下圖所示:

根據架構圖介紹一下Scrapy中的各大組件及其功能:

Scrapy引擎(Engine):負責控制數據流在系統的所有組建中流動,並在相應動作發生觸發事件。
調度器(Scheler):從引擎接收Request並將它們入隊,以便之後引擎請求request時提供給引擎。
下載器(Downloader):負責獲取頁面數據並提供給引擎,而後提供給Spider。
Spider:Scrapy用戶編寫用於分析Response並提取Item(即獲取到的Item)或額外跟進的URL的類。每個Spider負責處理一個特定(或一些網站)。
Item Pipeline:負責處理被Spider提取出來的Item。典型的處理有清理驗證及持久化(例如存儲到資料庫中,這部分後面會介紹存儲到MySQL中,其他的資料庫類似)。
下載器中間件(Downloader middlewares):是在引擎即下載器之間的特定鉤子(special hook),處理Downloader傳遞給引擎的Response。其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能(後面會介紹配置一些中間並激活,用以應對反爬蟲)。
Spider中間件(Spider middlewares):是在引擎及Spider之間的特定鉤子(special hook),處理Spider的輸入(response)和輸出(Items即Requests)。其提供了一個簡便的機制,通過插入自定義的代碼來擴展Scrapy功能。

⑸ 現在twisted不支持python35嗎

如果是在Windows下,需要額外安裝pyOpenSSL對應的版本。比如pyOpenSSL-0.13.winxp32-py2.7.msi;如果它提示沒有編譯文件,可能還需要安裝mingwg。如果是在Linux下,就很簡單,直接pipinstallscrapy就可以了,它會自動安裝好依賴包twisted。windows下用同樣這條命令就會出上面這種問題,所以要額外安裝對應的軟體。

⑹ 同時裝有python2.7 python3.5 scrapy命令怎麼在python2.7上面運行

終端scrapy命令實際上是調用了python安裝文件夾的子文件夾Scripts里的scrapy.exe(windows系統)或者scrapy.sh(linux系統)

所以如果你在終端鍵入scrapy執行的是python3.5的, 說明你的默認python是3.5

這個時候要想執行python2.7的,有幾個方法:

  1. 改變path環境變數, 設置python2.7為默認python(這個太麻煩, 不推薦)

  2. 執行scrapy命令(假設要執行scrapy startproject projectname)的時候不直接鍵入scrapy, 而是加上scrapy的絕對路徑,

    windows上: C:InstallAnaconda2Scriptsscrapy startproject projectname

    linux 同理

  3. 把python2.7的scrapy.exe所在的文件夾(我這里是C:InstallAnaconda2Scripts)添加到環境變數Path里, 將scrapy.exe重命名為scrapy2.exe(linux同理)

    然後終端運行的時候就輸入 scrapy2 startproject projectname 即可

4. 用virtualenv創建兩個隔離的虛擬python環境, 分別執行

⑺ python3.6安裝scrapy時 需不需要安裝visual c++ 14.0

  1. 安裝python3.5,添加python和python/scripts到環境變數(裡麵包含 pip和easy_install 工具)

  2. 命令行輸入pip install scrapy 安裝scrapy,如果存在哪些模塊不存在的,通過pip install進行安裝

  3. 安裝lxml時,出現"Unable to find vcvarsall.bat"錯誤時,參考 http://blog.csdn.net/u012302488/article/details/51178541 ,在http://www.lfd.uci.e/~gohlke/pythonlibs/#lxml 下載lxml對應版本的.whl文件(或者安裝VS2008、VS2010)

  4. 命令行進入.whl文件目錄,pip install xxxxx.whl安裝lxml

  5. 再次輸入pip install scrapy 安裝scrapy,現在可以安裝成功(如果出現pip需要升級,先按照錯誤提示升級pip)

  6. 命令行進入一個目錄輸入scrapy startproject tutorial,新建一個scrapy項目

  7. 按照Scrapy Tutorial修改代碼運行Scrapy項目如果出現「ImportError : cannot import name '_win32stdio'」錯誤,參考

  8. https://zhuanlan.hu.com/p/21335106

  9. 需要下載twisted3.6.0.zip包,將python中xxxxPython35Libsite-packages wisted目錄中的文件清空,將twisted3.6.0.zip壓縮後的文件復制到裡面

  10. 再安裝pywin32(如果通過pip安裝找不到合適的版本,可以到sourcefrog下載與操作系統和python版本對應的pywin32)

  11. 再次運行scrapy項目,最後成功!

⑻ 在python3.5.2中怎麼安裝scrapy

安裝方法
首先安裝wheel
pip install wheel11
安裝完成後驗證是否成功
wheel11
安裝成功是這樣
然後去上邊的網站下載Scrapy庫,
進到網站=>搜索』Scrapy』=>下載
把下載的.whl文件放在一個容易尋找的地址(我放在了D:\)
然後在控制台進入該地址

⑼ python中的scrapy是什麼意思a

Scrapy英文意思是刮擦
被用來命名爬蟲界知名的框架。
使用這個框架可以輕易實現常規網頁採集。也支持大型架構。升級後redis更是支持分布式。利用scrapyd更是可以發布服務。
從事爬蟲方向必學!

⑽ scrapy和python有什麼關系

Scrapy是Python開發的一個快速、高層次的web數據抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途廣泛,可以用於數據挖掘和監測。

Scrapy吸引人的地方在於它是一個框架,任何人都可以根據需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等。

Scrapy算得上是Python世界中最常用的爬蟲框架了,同時它也是我掌握的幾種流行語言中最好的爬蟲框架,沒有之一!我認為它也是最難學習的框架,同樣沒有之一。很多初學Scarpy的經常向我抱怨完全不清楚Scrapy該怎樣入手,即使看的是中文的文檔,也感到很難理解。我當初接觸Scrapy時也有這樣的感覺。之所以感到Scrapy難學,究其原因,是其官方文檔實在太過凌亂,又缺少實用的代碼例子,讓人看得雲里霧里,不知其所已然。雖然其文檔不良,但卻沒有遮擋住它的光輝,它依然是Python世界中目前最好用的爬蟲框架。其架構的思路、蜘蛛執行的效能,還有可擴展的能力都非常出眾,再配以Python語言的簡潔輕巧,使得爬蟲的開發事半功倍。

相關推薦:《Python基礎教程》

Scrapy的優點:

(1)提供了內置的HTTP緩存,以加速本地開發。

(2)提供了自動節演調節機制,而且具有遵守robots.txt的設置的能力。

(3)可以定義爬行深度的限制,以避免爬蟲進入死循環鏈接。

(4)會自動保留會話。

(5)執行自動HTTP基本認證。不需要明確保存狀態。

(6)可以自動填寫登錄表單。

(7)Scrapy有一個內置的中間件,可以自動設置請求中的引用(referrer)頭。

(8)支持通過3xx響應重定向,也可以通過HTML元刷新。

(9)避免被網站使用的meta重定向困住,以檢測沒有JS支持的頁面。

(10)默認使用CSS選擇器或XPath編寫解析器。

(11)可以通過Splash或任何其他技術(如Selenium)呈現JavaScript頁面。

(12)擁有強大的社區支持和豐富的插件和擴展來擴展其功能。

(13)提供了通用的蜘蛛來抓取常見的格式:站點地圖、CSV和XML。

(14)內置支持以多種格式(JSON、CSV、XML、JSON-lines)導出收集的數據並將其存在多個後端(FTP、S3、本地文件系統)中。

Scrapy框架原理

Scrapy Engine(引擎):負責Spider、ItemPipeline、Downloader、Scheler中間的通訊,信號、數據傳遞等。

Scheler(調度器):負責接收引擎發送過來的Request請求,並按照一定的方式進行整理排列,入隊,當引擎需要時,交還給引擎。

Downloader(下載器):負責下載Scrapy Engine(引擎)發送的所有Requests請求,並將其獲取到的Responses交還給Scrapy Engine(引擎),由引擎交給Spider來處理,

Spider(爬蟲):負責處理所有Responses,從中分析提取數據,獲取Item欄位需要的數據,並將需要跟進的URL提交給引擎,再次進入Scheler(調度器),

Item Pipeline(管道):負責處理Spider中獲取到的Item,並進行進行後期處理(詳細分析、過濾、存儲等)的地方.

Downloader Middlewares(下載中間件):你可以當作是一個可以自定義擴展下載功能的組件。

Spider Middlewares(Spider中間件):你可以理解為是一個可以自定擴展和操作引擎和Spider中間通信的功能組件(比如進入Spider的Responses;和從Spider出去的Requests)

Scrapy各個組件介紹

·Scrapy Engine:

引擎負責控制數據流在系統中所有組件中流動,並在相應動作發生時觸發事件。它也是程序的入口,可以通過scrapy指令方式在命令行啟動,或普通編程方式實例化後調用start方法啟動。

·調度器(Scheler)

調度器從引擎接收爬取請求(Request)並將它們入隊,以便之後引擎請求它們時提供給引擎。一般來說,我們並不需要直接對調度器進行編程,它是由Scrapy主進程進行自動控制的。

·下載器(Down-loader)

下載器負責獲取頁面數據並提供給引擎,而後將網站的響應結果對象提供給蜘蛛(Spider)。具體點說,下載器負責處理產生最終發出的請求對象 Request 並將返回的響應生成 Response對象傳遞給蜘蛛。

·蜘蛛——Spiders

Spider是用戶編寫用於分析響應(Response)結果並從中提取Item(即獲取的Item)或額外跟進的URL的類。每個Spider負責處理一個特定(或一些)網站。

·數據管道——Item Pipeline

Item Pipeline 負責處理被 Spider 提取出來的 Item。 典型的處理有清理、驗證及持久化(例如,存取到資料庫中)。

·下載器中間件(Downloader middle-wares)

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

·Spider中間件(Spider middle-wares)

Spider 中間件是在引擎及 Spider 之間的特定鉤子(specific hook),處理 Spider 的輸入(Response)和輸出(Items及Requests)。其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy的功能。

從Scrapy的系統架構可見,它將整個爬網過程進行了非常具體的細分,並接管了絕大多數復雜的工作,例如,產生請求和響應對象、控制爬蟲的並發等。

熱點內容
國家基礎資料庫 發布:2024-12-24 10:58:20 瀏覽:923
python是否是字元串 發布:2024-12-24 10:56:51 瀏覽:524
疫區的消毒應怎麼配置 發布:2024-12-24 10:55:31 瀏覽:241
可樂雲解壓密碼 發布:2024-12-24 10:50:18 瀏覽:759
數據存儲與容災 發布:2024-12-24 10:49:47 瀏覽:597
蘋果安卓哪個好玩 發布:2024-12-24 10:44:00 瀏覽:317
怎麼在電腦上建網站上傳ftp 發布:2024-12-24 10:34:36 瀏覽:777
linux下安裝驅動 發布:2024-12-24 10:33:03 瀏覽:652
什麼人用獨立伺服器 發布:2024-12-24 10:22:09 瀏覽:683
mysql存儲過程異常回滾 發布:2024-12-24 10:22:07 瀏覽:842