python爬蟲-urllib、urllib2、requests三者關係

2020-12-03 it技術交流

抓取始終是一個很大的需求,小到單個頁面,某個站點,大到搜尋引擎(百度、谷歌)的全網抓取。只要人能看到的東西,理論上都是爬蟲可以獲取的。不論靜態頁面還是動態頁面。也不論pc端的頁面還是移動端的app。話有點大,但這就是本系列的目的。爬蟲編程,有很多語言可選,python、php、go、java···甚至是c。這裡我們選擇python作為爬蟲的程式語言,因為它簡單易上手,並且節約生命。

python爬蟲

這裡需要聲明的是以下的教程都是基於python2.7的,python3已經有很大的變化了。不了解python如何開始我們的爬蟲呢?隨便找個python教程,花五分鐘時間看一下基本語法,就可以回來繼續我們的爬蟲之旅。python中可以用來做爬蟲的庫也有很多,比較常用的是urllib、urllib2和requests,這三個庫基本可以解決大部分抓取需求,我們也將從這裡開始學起。很多人做了一段時間的爬蟲了,也不是很清楚這三者的關係,用這個庫的這個方法也可以,那個庫的那個方法也行,區別是啥,很容易混淆。所以下面我們對這三個庫的關係和區別有一個清晰的認識。

urllib、urllib2、requests關係

urllib和urllib2是python標準庫,就是你安裝了python,這兩個庫就已經可以直接使用了;requests是第三方庫,不是python基金會實現的,但是功能是很強大的。

urllib和urllib2

我們先說這兩個標準庫,這兩個庫做爬蟲也基本夠用了,不用requests也是可以的。

urllib和urllib2都是通過url打開資源,其中urllib短板是在太大,例如它只能接受url,卻如法對請求進行headers的偽裝,這樣寫的爬蟲發送的請求會被很多網站直接阻擋掉。因此python基金會不得不推出urllib2對這塊功能進行增強。urllib2可以接受一個Request對象,並以此設置一個URL的headers。但是問題在於urllib2並沒有完全取代urllib的所有功能,比如urllib中的urlencode()方法,在urllib2中就是沒有的。所以urllib和urllib2不得不一起使用。

requests

urllib和urllib2是夠亂的吧,使用時還要考慮url編碼等等問題。第三方庫requests出現了,它的slogen是Requests is the only Non-GMO HTTP library for Python, safe for human consumption.相對於標準庫urllib、urllib2也確實有資格說這句話。以上基礎的東西(urllib、urllib2、requests)我們還是要了解的,在這個過程中知道爬蟲是怎麼回事,以後再使用其他庫、框架、搞分布式什麼的

相關焦點

  • Python開發簡單爬蟲【學習資料總結】
    將URL存放在關係型數據中 將URL存儲在緩存資料庫中 三、網頁下載器和urllib2模塊 網頁下載器類似於瀏覽器,會將網際網路對應的網頁以HTML的形式下載到本地,存儲成本地文件或內存字符串,然後進行後續的分析。
  • Python破解反爬蟲:最新反爬蟲有道翻譯中英文互譯破解,附代碼
    由於爬蟲的出現,導致很多網頁都設置了反爬蟲機制:常見的反爬蟲機制就是在客戶端發出請求的時候,在請求的內容中新增一些內容,而這些內容都是經過「加密的」,每次請求都是不同的,這樣就導致了很多傳統的爬蟲失效。
  • Python,爬蟲開發的不二選擇
    如果我們把網際網路比作一張大的蜘蛛網,數據便是存放於蜘蛛網的各個節點,而爬蟲就是一隻小蜘蛛,沿著網絡抓取自己的獵物(數據)。爬蟲指的是:向網站發起請求,獲取資源後分析並提取有用數據的程序。如今,人類社會已經進入了大數據時代,如何高效的獲取數據,已經成了各個網際網路公司的技術研發重點,掌握爬蟲技術已經成為了大數據公司技術人員不可或缺的一項技能。
  • 「Python爬蟲與文本實例技術與應用」培訓班通知
    通過爬蟲獲取的海量信息,我們可以對其進行進一步的分析:市場預測、文本分析、機器學習方法等。     Python作為一門腳本語言,它靈活、易用、易學、適用場景多,實現程序快捷便利,早已經成為程式設計師們的一門編程利器。Python這門程式語言包羅萬象,可以說掌握了python,除了一些特殊環境和高度的性能要求,你可以用它做任何事。
  • 如何快速學會Python爬蟲(入門篇)
    Python爬蟲入門二之爬蟲基礎了解3. Python爬蟲入門三之Urllib庫的基本使用4. Python爬蟲入門四之Urllib庫的高級用法5. Python爬蟲入門五之URLError異常處理6.
  • Python基礎教程——爬蟲——起步
    提起,Python,那是必須要提到爬蟲的,雖然其他語言也能爬蟲,但是Python無疑是首選,也是最優解。要說起爬蟲,技術細節還是蠻多的,本文的目的是讓你在最短的時間內掌握思路,許多人說起爬蟲,不知道從哪裡入手,不知道要怎麼辦,這才是要解決的重點。本文提供三套解決思路供大家參考。
  • python爬蟲入門實戰!爬取博客文章標題和連結!
    最近有小夥伴和我留言想學python爬蟲,那麼就搞起來吧。準備階段爬蟲有什麼用呢?舉個最簡單的小例子,你需要《戰狼2》的所有豆瓣影評。最先想的做法可能是打開瀏覽器,進入該網站,找到評論,一個一個複製到文本中,保存,翻頁,接著複製,直到翻到最後一頁。
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    想要入門Python 爬蟲首先需要解決四個問題:1.熟悉python編程2.了解HTML3.了解網絡爬蟲的基本原理4.學習使用python爬蟲庫1、熟悉python編程剛開始入門爬蟲,初學者無需學習python的類,多線程,模塊和其他稍微困難的內容。
  • Python爬蟲實戰教程——爬取xkcd漫畫
    0 前言Python版本:3.7.0開發工具:IDLE(Python 3.7 64-bit)、Google Chrome1 網絡爬蟲(web crawler)?網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人),是一種按照一定的規則,自動地抓取網絡信息的程序或者腳本。
  • 如何開始寫你的第一個python腳本——簡單爬蟲入門!
    好多朋友在入門python的時候都是以爬蟲入手,而網絡爬蟲是近幾年比較流行的概念,特別是在大數據分析熱門起來以後,學習網絡爬蟲的人越來越多,哦對,現在叫數據挖掘了!其實,一般的爬蟲具有2個功能:取數據和存數據!好像說了句廢話。。。
  • Python新手爬蟲,簡單製作抓取廖雪峰的教程的小爬蟲
    Python 數據處理 Python編程從入門到實踐 核心編程基礎教程 網絡爬蟲入門書籍 python視頻編程從入門到精通 程序設計教材人民郵電¥72.2領3元券話不多說,先來看看整個爬蟲過程吧!目標:廖雪峰官網—python教程工具:pycharm、python3.6、requests庫、time庫、lxml庫思路:85 抓取所有的目錄章節 url85 找到 url內教程主體所在的 div85 遍歷 div下所有標籤,文本和代碼部分內容直接保存85 區分其中的代碼、圖片、視頻 3個內容,
  • Python 爬蟲面試題 170 道
    59.python 字典和 json 字符串相互轉化方法60.請寫一個 Python 邏輯,計算一個文件中的大寫字母數量61. 請寫一段 Python連接 Mongo 資料庫,然後的查詢代碼。62.說一說 Redis 的基本類型。
  • Python爬蟲學到什麼程度就可以去找工作了?
    有朋友在群裡和大家討論,問的最多的問題就是,python 爬蟲學到什麼程度可以去找工作了,關於這點,和大家分享下我的理解。去招聘網上看看需求都有哪些,直接做個拉勾網爬蟲(有需要的私信)出結果了:仔細看看,我們可以得出以下幾點:1、 python 不是唯一可以做爬蟲的,很多語言都可以,
  • 5分鐘快速學習掌握python爬蟲Beautifulsoup解析網頁
    python爬蟲用Beatifulsoup庫解析網頁提取所需元素新手看懂個人觀點:之前我們有講過爬蟲和網頁的一些聯繫,網頁的一些組成部分,爬蟲就是對網頁裡面的數據進行提取然後對其進行數據處理我們分成三部分來完成今天的工作:第一部分:使用Beautifulsoup來解析解析網頁,首先我們講一下這個Beautifulsoup庫,我們用來解析網頁和提取網頁元素的模塊並不止這個,有Xpath ,re正則表達式,urllib
  • Python趣味打怪:60秒學會一個例子,147段代碼助你從入門到大師
    >例子是有趣的例子,教程也是正經教程,學習路徑清晰、系統,先一起來看看完整目錄:學習路徑施工完成:1、Python基礎2、Python字符串和正則化3、Python文件4、Python日期5、Python利器6、Python畫圖7、Python實戰施工中:Python基礎算法python
  • Python 爬蟲面試題 170 道:2019 版
    90.寫一段匹配郵箱的正則表達式其他內容91.解釋一下 python 中 pass 語句的作用?.寫一個快速排序130.寫一個拓撲排序131.python 實現一個二進位計算132.有一組「+」和「-」符號,要求將「+」排到左邊,「-」排到右邊,寫出具體的實現方法。
  • Python——網絡爬蟲、登錄、代理設置
    在我們爬取數據時,如果一直使用同一個ip,很可能就會被進位訪問頁面,所以,做網絡爬蟲都躲不過去ip問題。1、代理基本原理代理,實際上就是代理伺服器(proxy server),它的功能是代理網絡用戶去取得網絡信息。形象地說,它是網絡信息的中轉站。在我們正常請求一個網站時,是發送了請求給web伺服器,web伺服器把響應傳回給我們。
  • 乾貨丨Python接口測試自動化實戰及代碼示例:含get、post等方法
    最終選定 python 作為腳本開發語言,使用其自帶的 requests 和 urllib 模塊進行接口請求,使用優化後的 unittest 測試框架編寫測試接口函數,測試結果選用 HTMLTestRunner 框架予以展示,並使用 python 的 ssl 模塊支持 https 協議的驗證。接下來,我詳細地介紹這些模塊,並給出各個模塊完整的測試代碼。
  • 程式設計師如何煉成 Python 爬蟲「王者」?
    作者 | 周蘿蔔責編 | 郭芮本文章精選了五個爬蟲實例,希望能夠給想要入門 Python 爬蟲的小夥伴兒們一些幫助。query=python&city=101010100'res = requests.get(url, headers=header).textprint(res)content = BeautifulSoup(res, "html.parser")ul = content.find_all
  • 最全的 Python 反爬蟲及應對方案!
    通過User-Agent來控制訪問無論是瀏覽器還是爬蟲程序,在向伺服器發起網絡請求的時候,都會發過去一個頭文件:headers,比如知乎的requests headers。這裡面的大多數的欄位都是瀏覽器向服務表明身份用的對於爬蟲程序來說,最需要注意的欄位就是:User-Agent很多網站都會建立user-agent白名單,只有屬於正常範圍的user-agent才能夠正常訪問。