python爬蟲系列1 方案概述

2021-08-20 07:03:44 字數 1413 閱讀 9855

爬蟲技能樹:

##爬蟲高階必須                         

0. requests 模組, beautifulsoup模組, css選擇器語法, re正則模組, http頭編寫, cookies,json解析等一定要掌握至熟練及以上程度.

1. 爬取重ajax頁面, 推薦phantomjs,其次selenium.

2. 破解驗證碼,推薦谷歌開源庫pytesser,進一步深入可以學習《高等數學-線性代數》, pandas, numpy, k近鄰演算法.

3. 過濾器, 推薦布隆過濾器bloom filter及其c實現;

4. 分布式爬蟲(訊息佇列).推薦rabbitmq.

5. 任務排程. 推薦schedule.

基本上是這樣乙個學習階梯. 另: 反對學習任何爬蟲框架, 尤其 scrapy, pyspider. 原因:這兩個框架太優秀,太全。

使用 google 的 ocr 開源庫 tesseract,對應的python包是pytesser,如果只是做簡單(沒有數字重疊)的數字識別,那麼僅需呼叫介面就能完成識別。

##爬蟲方案分析                         

1、python自帶的urllib2和urllib或者第三方模組requests 

這種方案適合簡單的頁面爬蟲,比如爬取推薦文章。

urllib2和urllib是python自帶模組可用來傳送處理請求,雖然比較靈活但api易用性較差,所以一般都要進行二次封裝,我曾經也進行過封裝,最後發現自己封裝出來的模組無限趨近於非常成熟的requests庫,所以還是直接使用requests吧,當然requests只傳送和接受請求,對於頁面分析還要配合lxml或beautifulsoup等第三方庫進行。高階點的爬蟲不僅僅是傳送和處理請求,還需要處理異常,請求速度控制等問題,這就需要我們寫額外的**去控制,當然我們可以自己寫只是時間問題,但完全沒有必要,接下來我會介紹第二種方案。

2、scrapy框架

3、selenium

這種方式我稱為終極必殺器,一般是實在沒辦法的時候才用,以前我在利用某家搜尋引擎抓取文章時,該搜尋引擎採用的比較高難度的反爬蟲機制而且不斷變化讓人找不到規律,最典型的特點就是cookie會隨機隱藏到某個頁面js和中,解決方案就是模擬瀏覽器的行為載入所有js等靜態資源檔案,如果自己寫個瀏覽器取解析太扯蛋了,如果chrome瀏覽器能開放介面,通過chrome的載入方式獲取頁面的內容就好了,這就是selenium了,selenium加上隨機等待時間可以模擬出和人非常類似的操作行為,缺點就是速度較慢,但是一般爬蟲對抓取速度要求不高,重要的是穩定性,這種方式對於抓取反爬蟲機制做的好的大型**比較適用。

總結:對於大部分爬蟲需求直接用scrapy解決,如果解決不了再採用第一種或第三種方案,就這麼簡單。

爬蟲系列1 python簡易爬蟲分析

決定寫乙個小的爬蟲系列,本文是第一篇,講爬蟲的基本原理和簡易示例。1 單個網頁的簡易爬蟲 如下 import urllib import re def gethtml url 通過頁面url獲取其對應的html內容 page urllib.urlopen url 開啟頁面 content page....

Python爬蟲系列

部落格 python,爬蟲 由於近來學 lan 業 ai 繁 fa 忙 zuo 快乙個月沒有更新部落格了。這周完成了兩門課的結課考試,現下時間開始變得充裕。準備梳理一下前段時間學習的關於python爬蟲的內容,權當複習鞏固知識。而初次學習時遇到的疑難雜症,那時候的應對策略是抓大放下,在這梳理過程會下...

Python爬蟲系列 開端

網路爬蟲,顧名思義,是從網路上爬取特定資訊的工具。開發環境 乙個完整的爬蟲,一般包含以下四部分或其中幾個部分 主函式spiderurl管理器url manger網頁解析器html parser內容輸出器outputerbeautifulsoup 解析網頁 requests 或 urllib2 獲取網...