導航:首頁 > 編程語言 > 文件爬蟲python

文件爬蟲python

發布時間:2024-08-22 14:27:28

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解析包。

② 姣曚笟鐢熷繀鐪婸ython鐖鉶涓婃墜鎶宸

Python蹇閫熶笂鎵嬬殑7澶ф妧宸

Python蹇閫熶笂鎵嬬埇鉶鐨7澶ф妧宸

1銆佸熀鏈鎶撳彇緗戦〉

get鏂規硶

post鏂規硶

2銆佷嬌鐢ㄤ唬鐞咺P

鍦ㄥ紑鍙戠埇鉶榪囩▼涓緇忓父浼氶亣鍒癐P琚灝佹帀鐨勬儏鍐碉紝榪欐椂灝遍渶瑕佺敤鍒

浠g悊IP錛

鍦╱rllib 2鍖呬腑鏈塒roxy Handler綾伙紝 閫氳繃姝ょ被鍙浠ヨ劇疆浠g悊

璁塊棶緗戦〉錛屽備笅浠g爜鐗囨碉細

3銆丆ookies澶勭悊

cookies鏄鏌愪簺緗戠珯涓轟簡杈ㄥ埆鐢ㄦ埛韜浠姐佽繘琛宻ession璺熻釜鑰

鍌ㄥ瓨鍦ㄧ敤鎴鋒湰鍦扮粓絝涓婄殑鏁版嵁(閫氬父緇忚繃鍔犲瘑) 錛 python鎻愪緵浜

cookie lib妯″潡鐢ㄤ簬澶勭悊cookies錛 cookie lib妯″潡鐨勪富瑕佷綔

鐢ㄦ槸鎻愪緵鍙瀛樺偍cookie鐨勫硅薄錛 浠ヤ究浜庝笌urllib 2妯″潡閰嶅悎浣

鐢ㄦ潵璁塊棶Internet璧勬簮銆

浠g爜鐗囨碉細

鍏抽敭鍦ㄤ簬Cookie Jar() 錛 瀹冪敤浜庣$悊HTTP cookie鍊箋佸瓨鍌

HTTP璇鋒眰鐢熸垚鐨刢ookie銆佸悜浼犲嚭鐨凥TTP璇鋒眰娣誨姞cookie

鐨勫硅薄銆傛暣涓猚ookie閮藉瓨鍌ㄥ湪鍐呭瓨涓錛 瀵笴ookie Jar瀹炰緥榪

琛屽瀮鍦懼洖鏀跺悗cookie涔熷皢涓㈠け錛 鎵鏈夎繃紼嬮兘涓嶉渶瑕佸崟鐙鍘繪搷浣

鎵嬪姩娣誨姞cookie錛

4銆佷吉瑁呮垚嫻忚堝櫒

鏌愪簺緗戠珯鍙嶆劅鐖鉶鐨勫埌璁匡紝浜庢槸瀵圭埇鉶涓寰嬫嫆緇濊鋒眰銆傛墍浠ョ敤

urllib 2鐩存帴璁塊棶緗戠珯緇忓父浼氬嚭鐜癏TTP Error 403錛

Forbidden鐨勬儏鍐點

瀵規湁浜沨eader瑕佺壒鍒鐣欐剰錛 Server絝浼氶拡瀵硅繖浜沨eader

鍋氭鏌ワ細

1.User-Agent鏈変簺Server鎴朠roxy浼氭鏌ヨュ礆紝 鐢ㄦ潵鍒

鏂鏄鍚︽槸嫻忚堝櫒鍙戣搗鐨凴equest銆

2.Content-Type鍦ㄤ嬌鐢≧EST鎺ュ彛鏃訛紝 Server浼氭鏌ヨ

鍊礆紝 鐢ㄦ潵紜瀹欻TTP Body涓鐨勫唴瀹硅ユ庢牱瑙f瀽銆

榪欐椂鍙浠ラ氳繃淇鏀筯ttp鍖呬腑鐨刪eader鏉ュ疄鐜幫紝 浠g爜鐗囨靛備笅

5銆侀獙璇佺爜鐨勫勭悊

瀵逛簬涓浜涚畝鍗曠殑楠岃瘉鐮侊紝鍙浠ヨ繘琛岀畝鍗曠殑璇嗗埆銆傛垜浠鍙榪涜岃繃涓

浜涚畝鍗曠殑楠岃瘉鐮佽瘑鍒錛屼絾鏄鏈変簺鍙嶄漢綾葷殑楠岃瘉鐮侊紝姣斿12306

錛屽彲浠ラ氳繃鎵撶爜騫沖彴榪涜屼漢宸ユ墦鐮侊紝褰撶劧榪欐槸瑕佷粯璐圭殑銆

6銆乬zip鍘嬬緝

鏈夋病鏈夐亣鍒拌繃鏌愪簺緗戦〉錛屼笉璁烘庝箞杞鐮侀兘鏄涓鍥涔辯爜銆傚搱鍝堬紝閭

璇存槑浣犺繕涓嶇煡閬撹稿歸eb鏈嶅姟鍏鋒湁鍙戦佸帇緙╂暟鎹鐨勮兘鍔涳紝 榪欏彲

浠ュ皢緗戠粶綰胯礬涓婁紶杈撶殑澶ч噺鏁版嵁娑堝噺60%浠ヤ笂銆傝繖灝ゅ叾閫傜敤浜

XML web鏈嶅姟錛 鍥犱負XML鏁版嵁鐨勫帇緙╃巼鍙浠ュ緢楂樸

浣嗘槸涓鑸鏈嶅姟鍣ㄤ笉浼氫負浣犲彂閫佸帇緙╂暟鎹錛岄櫎闈炰綘鍛婅瘔鏈嶅姟鍣ㄤ綘鍙

浠ュ勭悊鍘嬬緝鏁版嵁銆

浜庢槸闇瑕佽繖鏍蜂慨鏀逛唬鐮侊細

榪欐槸鍏抽敭錛氬壋寤篟equest瀵硅薄錛 娣誨姞涓涓獮ccept-

encoding澶翠俊鎮鍛婅瘔鏈嶅姟鍣ㄤ綘鑳芥帴鍙梘zip鍘嬬緝鏁版嵁銆

鐒跺悗灝辨槸瑙e帇緙╂暟鎹錛

7銆佸氱嚎紼嬪苟鍙戞姄鍙

鍗曠嚎紼嬪お鎱㈢殑璇濓紝灝遍渶瑕佸氱嚎紼嬩簡錛岃繖閲岀粰涓綆鍗曠殑綰跨▼奼犳ā鏉

榪欎釜紼嬪簭鍙鏄綆鍗曞湴鎵撳嵃浜1-10錛屼絾鏄鍙浠ョ湅鍑烘槸騫跺彂鐨勩

鉶界劧璇碢ython鐨勫氱嚎紼嬪緢楦¤倠錛 浣嗘槸瀵逛簬鐖鉶榪欑嶇綉緇滈戠箒鍨

錛岃繕鏄鑳戒竴瀹氱▼搴︽彁楂樻晥鐜囩殑銆

③ 濡備綍鍏ラ棬 Python 鐖鉶

Python鏄涓縐嶉潪甯告祦琛岀殑緙栫▼璇璦錛屼篃鏄鐖鉶棰嗗煙甯哥敤鐨勫伐鍏蜂箣涓銆傚傛灉鎮ㄦ兂鍏ラ棬Python鐖鉶錛屽彲浠ユ寜鐓т互涓嬫ラよ繘琛岋細1. 瀛︿範Python鍩虹鐭ヨ瘑錛氫簡瑙Python鐨勮娉曘佹暟鎹綾誨瀷銆佹祦紼嬫帶鍒剁瓑鍩烘湰姒傚康銆傚彲浠ラ氳繃鍦ㄧ嚎鏁欑▼銆佽嗛戞暀紼嬫垨鍙傝冧功綾嶆潵瀛︿範銆2. 瀛︿範緗戠粶鐖鉶鍩虹鐭ヨ瘑錛氫簡瑙d粈涔堟槸緗戠粶鐖鉶錛屼互鍙婄埇鉶鐨勫師鐞嗗拰鍩烘湰嫻佺▼銆傚︿範HTTP鍗忚銆丠TML瑙f瀽絳夌浉鍏崇煡璇嗐3. 瀛︿範Python鐖鉶搴擄細Python鏈夊緢澶氫紭縐鐨勭埇鉶搴擄紝濡俁equests銆丅eautifulSoup銆丼crapy絳夈傚彲浠ラ夋嫨鍏朵腑涓涓搴撹繘琛屽︿範鍜屽疄璺點4. 瀹炶返欏圭洰錛氶夋嫨涓涓綆鍗曠殑緗戠珯浣滀負緇冧範瀵硅薄錛屽皾璇曚嬌鐢≒ython鐖鉶搴撹繘琛屾暟鎹閲囬泦銆傚彲浠ヤ粠鑾峰彇緗戦〉鍐呭廣佽В鏋怘TML銆佹彁鍙栨暟鎹絳夋柟闈㈣繘琛屽疄璺點5. 娣卞叆瀛︿範錛氶殢鐫瀵筆ython鐖鉶鐨勭啛鎮夌▼搴︽彁楂橈紝鍙浠ュ︿範鏇撮珮綰х殑鐖鉶鎶鏈錛屽傚姩鎬佺綉欏電埇鍙栥佸弽鐖鉶絳栫暐搴斿圭瓑銆傚叓鐖楸奸噰闆嗗櫒鏄涓嬈懼姛鑳藉叏闈銆佹搷浣滅畝鍗曘侀傜敤鑼冨洿騫挎硾鐨勪簰鑱旂綉鏁版嵁閲囬泦鍣錛屽彲浠ュ府鍔╃敤鎴峰揩閫熻幏鍙栨墍闇鐨勬暟鎹銆備簡瑙f洿澶氭暟鎹閲囬泦鐨勬柟娉曞拰鎶宸э紝鍙浠ュ弬鑰冨叓鐖楸奸噰闆嗗櫒鐨勬暀紼嬶紝璇峰墠寰瀹樼綉鏁欑▼涓庡府鍔╀簡瑙f洿澶氳︽儏銆

④ python爬蟲的工作步驟

當前處於一個大數據的時代,一般網站數據來源有二:網站用戶自身產生的數據和網站從其他來源獲取的數據,今天要分享的是如何從其他網站獲取你想要的數據。

目前最適合用於寫爬蟲的語言是python,python中最受歡迎的爬蟲框架是scrapy,本文圍繞scrapy來展開講解爬蟲是怎麼工作的。

1.如下圖所示,爬蟲從編寫的spider文件中的start_urls開始,這個列表中的url就是爬蟲抓取的第一個網頁,它的返回值是該url對應網頁的源代碼,我們可以用默認的parse(self,response)函數去列印或解析這個源代碼

2.我們獲取到源代碼之後,就可以從網頁源代碼中找到我們想要的信息或需要進一步訪問的url,提取信息這一步,scrapy中集成了xpath,正則(re),功能十分強大,提取到信息之後會通過yield進入到中間件當中。

中間件包括爬蟲中間件和下載中間件,爬蟲中間件主要用於設置處理爬蟲文件中的代碼塊,下載中間件主要用於判斷爬蟲進入網頁前後的爬取狀態,在此中間件中,你可以根據爬蟲的返回狀態去做進一步判斷。

最後我們將yield過來的item,即就是我們想要的數據會在pipeline.py文件中進行處理,存入資料庫,寫入本地文件,都可以在這里進行,另外,為了減少代碼冗餘,建議所有與設置參數有關的參數,都寫在settings.py中去

閱讀全文

與文件爬蟲python相關的資料

熱點內容
單片機數據讀取 瀏覽:392
法語教程pdf 瀏覽:996
面試伺服器出現502怎麼定位 瀏覽:803
java讀取http 瀏覽:486
列寧全集pdf下載 瀏覽:334
你好法語pdf 瀏覽:408
安卓怎麼樣讓手機失去色彩 瀏覽:651
oracle11gr2linux 瀏覽:141
茶葉pdf 瀏覽:23
pdf圖怎麼列印 瀏覽:142
app圖標有個e是什麼app 瀏覽:266
linux運行python程序 瀏覽:238
如何打開已編譯文件 瀏覽:215
選購雲伺服器如何注冊 瀏覽:460
阿貓一個人拍解壓視頻 瀏覽:200
爆閃單片機 瀏覽:717
為什麼b站顯示找不到伺服器 瀏覽:464
吃雞安卓和ios怎麼換 瀏覽:142
程序員的心臟是什麼 瀏覽:557
空的文件夾怎麼編輯 瀏覽:515