當前位置:首頁 » 編程語言 » python爬蟲框架有哪些

python爬蟲框架有哪些

發布時間: 2023-06-06 12:07:26

1. python爬蟲框架哪個好用

說實話感覺大同小異。各有優缺點吧~

常見python爬蟲框架
1)Scrapy:很強大的爬蟲框架,可以滿足簡單的頁面爬取(比如可以明確獲知url pattern的情況)。用這個框架可以輕松爬下來如亞馬遜商品信息之類的數據。但是對於稍微復雜一點的頁面,如weibo的頁面信息,這個框架就滿足不了需求了。
2)Crawley: 高速爬取對應網站的內容,支持關系和非關系資料庫,數據可以導出為JSON、XML等
3)Portia:可視化爬取網頁內容
4)newspaper:提取新聞、文章以及內容分析
5)python-goose:java寫的文章提取工具
6)Beautiful Soup:名氣大,整合了一些常用爬蟲需求。缺點:不能載入JS。
7)mechanize:優點:可以載入JS。缺點:文檔嚴重缺失。不過通過官方的example以及人肉嘗試的方法,還是勉強能用的。
8)selenium:這是一個調用瀏覽器的driver,通過這個庫你可以直接調用瀏覽器完成某些操作,比如輸入驗證碼。
9)cola:一個分布式爬蟲框架。項目整體設計有點糟,模塊間耦合度較高。

資料來源:網頁鏈接

希望我的回答對你有幫助~

2. python爬蟲框架哪個好用

爬蟲框架中比較好用的是 Scrapy 和PySpider。pyspider上手更簡單,操作更加簡便,因為它增加了 WEB 界面,寫爬蟲迅速,集成了phantomjs,可以用來抓取js渲染的頁面。Scrapy自定義程度高,比 PySpider更底層一些,適合學習研究,需要學習的相關知識多,不過自己拿來研究分布式和多線程等等是非常合適的。

PySpider

PySpider是binux做的一個爬蟲架構的開源化實現。主要的功能需求是:

抓取、更新調度多站點的特定的頁面

需要對頁面進行結構化信息提取

靈活可擴展,穩定可監控

pyspider的設計基礎是:以python腳本驅動的抓取環模型爬蟲

通過python腳本進行結構化信息的提取,follow鏈接調度抓取控制,實現最大的靈活性

通過web化的腳本編寫、調試環境。web展現調度狀態

抓取環模型成熟穩定,模塊間相互獨立,通過消息隊列連接,從單進程到多機分布式靈活拓展

pyspider的架構主要分為 scheler(調度器), fetcher(抓取器), processor(腳本執行):

各個組件間使用消息隊列連接,除了scheler是單點的,fetcher 和 processor 都是可以多實例分布式部署的。 scheler 負責整體的調度控制

任務由 scheler 發起調度,fetcher 抓取網頁內容, processor 執行預先編寫的python腳本,輸出結果或產生新的提鏈任務(發往 scheler),形成閉環。

每個腳本可以靈活使用各種python庫對頁面進行解析,使用框架API控制下一步抓取動作,通過設置回調控制解析動作。

3. python的爬蟲框架有哪些

爬蟲框架需要URL、頁面下載器、爬蟲調度器、網頁解析器、數據處理

爬蟲框架要處理很多的URL,我們需要設計一個隊列存儲所有要處理的 URL,這種先進先出的數據結構非常符合這個需求。 將所有要下載的URL存儲在待處理隊列中,每次下載會取出一個,隊列中就會少一個。我們知道有些URL的下載會有反爬蟲策略,所以針對這些請求需要做一些特殊的設置,進而可以對URL進行封裝抽出 Request。

頁面下載器如果沒有,用戶就要編寫網路請求的處理代碼,這無疑對每個 URL 都是相同的動作。 所以在框架設計中我們直接加入它就好了,至於使用什麼庫來進行下載都是可以的,你可以用 httpclient 也可以用okhttp在本文中我們使用一個超輕量級的網路請求庫 oh-my-request (沒錯,就是在下搞的)。優秀的框架設計會將這個下載組件置為可替換,提供默認的即可。

爬蟲調度器,調度器和我們在開發 web 應用中的控制器是一個類似的概念,它用於在下載器、解析器之間做流轉處理。 解析器可以解析到更多的 URL 發送給調度器,調度器再次的傳輸給下載器,這樣就會讓各個組件有條不紊的進行工作。

網頁解析器我們知道當一個頁面下載完成後就是一段 HTML 的 DOM 字元串表示,但還需要提取出真正需要的數據以前的做法是通過String的API 或者正則表達式的方式在DOM 中搜尋,這樣是很麻煩的,框架 應該提供一種合理、常用、方便的方式來幫助用戶完成提取數據這件事兒。常用的手段是通過xpath或者css選擇器從DOM中進行提取,而且學習這項技能在幾乎所有的爬蟲框架中都是適用的。

數據處理,普通的爬蟲程序中是把網頁解析器和數據處理器合在一起的,解析到數據後馬上處理。 在一個標准化的爬蟲程序中,他們應該是各司其職的,我們先通過解析器將需要的數據解析出來,可能是封裝成對象。然後傳遞給數據處理器,處理器接收到數據後可能是存儲到資料庫,也可能通過介面發送給老王。

4. python都有哪些框架

1. Django

Django是一個開源的Web應用框架,由Python寫成,支持許多資料庫引擎,可以讓Web開發變得迅速和可擴展,並會不斷的版本更新以匹配Python最新版本,如果是新手程序員,可以從這個框架入手。

2. CherryPy

CherryPy是一種用於Python的、簡單而非常有用的Web框架,其主要作用是以盡可能少的操作將Web伺服器與Python代碼連接,其功能包括內置的分析功能、靈活的插件系統以及一次運行多個HTTP伺服器的功能,可與運行在最新版本的Python、Jython、Android上。

3. Web2py

web2py
是一個為Python語言提供的全功能Web應用框架,旨在敏捷快速的開發Web應用,具有快速、安全以及可移植的資料庫驅動的應用,兼容Google App
Engine。

4. TurboGears

TurboGears可以快速實現Web應用程序開發,富含豐富的特殊性能,可以解決更多的框架領域問題,從簡單到復雜的項目都可以開發,並具有實時的多資料庫支持和靈活的ORM,簡單的文檔和最小的設置使它成為一個理想的使用框架。

5. Pylons

Pylons是一個開源的Web應用框架,使用Python語言編寫,它對WSGI標准進行了擴展應用,提升了重用性且將功能分割到獨立的模塊中,而且提供了在線調試器,易於錯誤跟蹤!

5. Python編程基礎之(五)Scrapy爬蟲框架

經過前面四章的學習,我們已經可以使用Requests庫、Beautiful Soup庫和Re庫,編寫基本的Python爬蟲程序了。那麼這一章就來學習一個專業的網路爬蟲框架--Scrapy。沒錯,是框架,而不是像前面介紹的函數功能庫。

Scrapy是一個快速、功能強大的網路爬蟲框架。

可能大家還不太了解什麼是框架,爬蟲框架其實是實現爬蟲功能的一個軟體結構和功能組件的集合。

簡而言之, Scrapy就是一個爬蟲程序的半成品,可以幫助用戶實現專業的網路爬蟲。

使用Scrapy框架,不需要你編寫大量的代碼,Scrapy已經把大部分工作都做好了,允許你調用幾句代碼便自動生成爬蟲程序,可以節省大量的時間。

當然,框架所生成的代碼基本是一致的,如果遇到一些特定的爬蟲任務時,就不如自己使用Requests庫搭建來的方便了。

PyCharm安裝

測試安裝:

出現框架版本說明安裝成功。

掌握Scrapy爬蟲框架的結構是使用好Scrapy的重中之重!

先上圖:

整個結構可以簡單地概括為: 「5+2」結構和3條數據流

5個主要模塊(及功能):

(1)控制所有模塊之間的數據流。

(2)可以根據條件觸發事件。

(1)根據請求下載網頁。

(1)對所有爬取請求進行調度管理。

(1)解析DOWNLOADER返回的響應--response。

(2)產生爬取項--scraped item。

(3)產生額外的爬取請求--request。

(1)以流水線方式處理SPIDER產生的爬取項。

(2)由一組操作順序組成,類似流水線,每個操作是一個ITEM PIPELINES類型。

(3)清理、檢查和查重爬取項中的HTML數據並將數據存儲到資料庫中。

2個中間鍵:

(1)對Engine、Scheler、Downloader之間進行用戶可配置的控制。

(2)修改、丟棄、新增請求或響應。

(1)對請求和爬取項進行再處理。

(2)修改、丟棄、新增請求或爬取項。

3條數據流:

(1):圖中數字 1-2

1:Engine從Spider處獲得爬取請求--request。

2:Engine將爬取請求轉發給Scheler,用於調度。

(2):圖中數字 3-4-5-6

3:Engine從Scheler處獲得下一個要爬取的請求。

4:Engine將爬取請求通過中間件發送給Downloader。

5:爬取網頁後,Downloader形成響應--response,通過中間件發送給Engine。

6:Engine將收到的響應通過中間件發送給Spider處理。

(3):圖中數字 7-8-9

7:Spider處理響應後產生爬取項--scraped item。

8:Engine將爬取項發送給Item Pipelines。

9:Engine將爬取請求發送給Scheler。

任務處理流程:從Spider的初始爬取請求開始爬取,Engine控制各模塊數據流,不間斷從Scheler處獲得爬取請求,直至請求為空,最後到Item Pipelines存儲數據結束。

作為用戶,只需配置好Scrapy框架的Spider和Item Pipelines,也就是數據流的入口與出口,便可完成一個爬蟲程序的搭建。Scrapy提供了簡單的爬蟲命令語句,幫助用戶一鍵配置剩餘文件,那我們便來看看有哪些好用的命令吧。

Scrapy採用命令行創建和運行爬蟲

PyCharm打開Terminal,啟動Scrapy:

Scrapy基本命令行格式:

具體常用命令如下:

下面用一個例子來學習一下命令的使用:

1.建立一個Scrapy爬蟲工程,在已啟動的Scrapy中繼續輸入:

執行該命令,系統會在PyCharm的工程文件中自動創建一個工程,命名為pythonDemo。

2.產生一個Scrapy爬蟲,以教育部網站為例http://www.moe.gov.cn:

命令生成了一個名為demo的spider,並在Spiders目錄下生成文件demo.py。

命令僅用於生成demo.py文件,該文件也可以手動生成。

觀察一下demo.py文件:

3.配置產生的spider爬蟲,也就是demo.py文件:

4.運行爬蟲,爬取網頁:

如果爬取成功,會發現在pythonDemo下多了一個t20210816_551472.html的文件,我們所爬取的網頁內容都已經寫入該文件了。

以上就是Scrapy框架的簡單使用了。

Request對象表示一個HTTP請求,由Spider生成,由Downloader執行。

Response對象表示一個HTTP響應,由Downloader生成,有Spider處理。

Item對象表示一個從HTML頁面中提取的信息內容,由Spider生成,由Item Pipelines處理。Item類似於字典類型,可以按照字典類型來操作。

6. Python中的爬蟲框架有哪些呢

實現爬蟲技術的編程環境有很多種,Java、Python、C++等都可以用來爬蟲。但很多人選擇Python來寫爬蟲,為什麼呢?因為Python確實很適合做爬蟲,豐富的第三方庫十分強大,簡單幾行代碼便可實現你想要的功能。更重要的,Python也是數據挖掘和分析的好能手。那麼,Python爬蟲一般用什麼框架比較好?
一般來講,只有在遇到比較大型的需求時,才會使用Python爬蟲框架。這樣的做的主要目的,是為了方便管理以及擴展。本文我將向大家推薦十個Python爬蟲框架。
1、Scrapy:Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。它是很強大的爬蟲框架,可以滿足簡單的頁面爬取,比如可以明確獲知url pattern的情況。用這個框架可以輕松爬下來如亞馬遜商品信息之類的數據。但是對於稍微復雜一點的頁面,如weibo的頁面信息,這個框架就滿足不了需求了。它的特性有:HTML, XML源數據 選擇及提取 的內置支持;提供了一系列在spider之間共享的可復用的過濾器(即 Item Loaders),對智能處理爬取數據提供了內置支持。
2、Crawley:高速爬取對應網站的內容,支持關系和非關系資料庫,數據可以導出為JSON、XML等。
3、Portia:是一個開源可視化爬蟲工具,可讓使用者在不需要任何編程知識的情況下爬取網站!簡單地注釋自己感興趣的頁面,Portia將創建一個蜘蛛來從類似的頁面提取數據。簡單來講,它是基於scrapy內核;可視化爬取內容,不需要任何開發專業知識;動態匹配相同模板的內容。

4、newspaper:可以用來提取新聞、文章和內容分析。使用多線程,支持10多種語言等。作者從requests庫的簡潔與強大得到靈感,使用Python開發的可用於提取文章內容的程序。支持10多種語言並且所有的都是unicode編碼。
5、Python-goose:Java寫的文章提取工具。Python-goose框架可提取的信息包括:文章主體內容、文章主要圖片、文章中嵌入的任何Youtube/Vimeo視頻、元描述、元標簽。
6、Beautiful Soup:名氣大,整合了一些常用爬蟲需求。它是一個可以從HTML或XML文件中提取數據的Python庫。它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間。Beautiful Soup的缺點是不能載入JS。
7、mechanize:它的優點是可以載入JS。當然它也有缺點,比如文檔嚴重缺失。不過通過官方的example以及人肉嘗試的方法,還是勉強能用的。
8、selenium:這是一個調用瀏覽器的driver,通過這個庫你可以直接調用瀏覽器完成某些操作,比如輸入驗證碼。Selenium是自動化測試工具,它支持各種瀏覽器,包括 Chrome,Safari,Firefox等主流界面式瀏覽器,如果在這些瀏覽器裡面安裝一個 Selenium 的插件,可以方便地實現Web界面的測試. Selenium支持瀏覽器驅動。Selenium支持多種語言開發,比如 Java,C,Ruby等等,PhantomJS 用來渲染解析JS,Selenium 用來驅動以及與Python的對接,Python進行後期的處理。
9、cola:是一個分布式的爬蟲框架,對於用戶來說,只需編寫幾個特定的函數,而無需關注分布式運行的細節。任務會自動分配到多台機器上,整個過程對用戶是透明的。項目整體設計有點糟,模塊間耦合度較高。
10、PySpider:一個國人編寫的強大的網路爬蟲系統並帶有強大的WebUI。採用Python語言編寫,分布式架構,支持多種資料庫後端,強大的WebUI支持腳本編輯器,任務監視器,項目管理器以及結果查看器。Python腳本控制,可以用任何你喜歡的html解析包。

7. python的爬蟲框架有哪些

實現爬蟲技術的編程環境有很多種,Java、Python、C++等都可以用來爬蟲。但很多人選擇Python來寫爬蟲,為什麼呢?因為Python確實很適合做爬蟲,豐富的第三方庫十分強大,簡單幾行代碼便可實現你想要的功能。更重要的,Python也是數據挖掘和分析的好能手。
高效的Python爬蟲框架。分享給大家。
1.Scrapy
Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。。用這個框架可以輕松爬下來如亞馬遜商品信息之類的數據。
2.PySpider
pyspider 是一個用python實現的功能強大的網路爬蟲系統,能在瀏覽器界面上進行腳本的編寫,功能的調度和爬取結果的實時查看,後端使用常用的資料庫進行爬取結果的存儲,還能定時設置任務與任務優先順序等。
3.Crawley
Crawley可以高速爬取對應網站的內容,支持關系和非關系資料庫,數據可以導出為JSON、XML等。
4、Portia:是一個開源可視化爬蟲工具,可讓使用者在不需要任何編程知識的情況下爬取網站!簡單地注釋自己感興趣的頁面,Portia將創建一個蜘蛛來從類似的頁面提取數據。簡單來講,它是基於scrapy內核;可視化爬取內容,不需要任何開發專業知識;動態匹配相同模板的內容。
5.Newspaper
Newspaper可以用來提取新聞、文章和內容分析。使用多線程,支持10多種語言等。
6、Python-goose:Java寫的文章提取工具。Python-goose框架可提取的信息包括:文章主體內容、文章主要圖片、文章中嵌入的任何Youtube/Vimeo視頻、元描述、元標簽。
7.Grab

Grab是一個用於構建Web刮板的Python框架。藉助Grab,您可以構建各種復雜的網頁抓取工具,從簡單的5行腳本到處理數百萬個網頁的復雜非同步網站抓取工具
8、selenium:這是一個調用瀏覽器的driver,通過這個庫你可以直接調用瀏覽器完成某些操作,比如輸入驗證碼。

熱點內容
易語言管理系統源碼 發布:2025-07-15 13:11:49 瀏覽:947
伺服器老是自己關機重啟什麼原因 發布:2025-07-15 13:11:48 瀏覽:440
能耗資料庫 發布:2025-07-15 12:50:55 瀏覽:329
謎宮腳本 發布:2025-07-15 12:40:07 瀏覽:865
安卓手機語音操作在哪裡開啟 發布:2025-07-15 12:18:49 瀏覽:284
安卓導航儀上網卡插哪裡 發布:2025-07-15 12:01:58 瀏覽:455
把文件編譯成數據 發布:2025-07-15 11:53:16 瀏覽:543
mt4如何修改密碼 發布:2025-07-15 11:53:16 瀏覽:216
2021思域新款買哪個配置 發布:2025-07-15 11:33:24 瀏覽:772
路由搭建http伺服器 發布:2025-07-15 11:26:45 瀏覽:724