快使用Ctrl+D收藏本站!如果本站的文章以及資源有幫助到您,希望您能贊助本站服務器費用,感謝您的支持!本站開放注冊,現邀請您一起分享技術心得!您可以-注冊-

Python3.6爬蟲入門練手小項目之一:使用爬蟲爬取糗事百科網站圖片項目

Python爬蟲 Julius_wen 876℃ 0評論

1.步驟解析

天天炫斗洛漓 www.wfrrl.icu 這個小項目的目的是讓大家學會如何爬取網站上的圖片,下面是簡單介紹。

實現步驟如下:

  • 1.首先要寫最簡單的代碼,確定能通過url訪問糗百
  • 2.將糗百服務器返回的數據進行解碼,得到完整HTML代碼
  • 3.查看糗百HTML代碼,進行正則匹配操作,爬取用戶發布的圖片

上面就是我們本次小項目案例的實現流程,下面我們將進行實驗。

2.逐步實現

1.使用urlopen編寫最簡單的訪問代碼

運行結果如下,報錯:

2.添加異常捕獲代碼

呀??!報錯了,最簡單的代碼訪問不了,出現錯誤異常情況……這里我們優化一下,添加異常捕獲代碼吧,別直接崩潰。咱們添加上次上次說到的URLError和HTTPError試試吧……

運行試一下:發現還是直接出錯崩潰。。。。。仔細看一下崩潰原因:

http.client.RemoteDisconnected: Remote end closed connection without response

哦,明白了。原來這不是url鏈接訪問出錯,而是http.client下爆出的異常錯誤,繼續修改一下:

再運行一下,就可以OK了;

打印出來的錯誤是,遠程計算機沒有響應,鏈接結束。。也就是說我們鏈接失敗了……

3.添加header,假裝成瀏覽器

上面最簡單的爬蟲代碼出現錯誤,錯誤原因是:Remote end closed connection without response。。也就是服務器不理我……我的可愛小爬蟲去招惹他,它對我不理睬……很傷心啊,為啥呢?一般情況下這是header請求頭的原因,服務器接到我寫的小爬蟲的訪問請求了,但是并沒有任何關于header的信息,服務器感覺這小子可能有鬼,不是個好東西,還是不回復為妙。。。于是乎,它就拒絕了響應。要解決這個問題,就需要在請求頭中添加header信息。把我們的小爬蟲偽裝一下,打扮成瀏覽器的模樣。(小小爬蟲,喬裝打扮一下,變成假瀏覽器,讓服務器的門衛放行小爬蟲)

好的,改寫完成之后,我們繼續運行:

哈哈,成功訪問了,并且得到服務器返回的數據了。。。呀,還是不對??這返回的啥玩意東西?不是HTML代碼呀,這咋回事?且慢且慢,讓我們打開360瀏覽器,開發者工具抓一下數據包。

  • 1.打開360瀏覽器的開發者工具
  • 2.點擊network菜單
  • 3.此時左側為空,然后刷新url欄目重新鏈接
  • 4.找到一開始的那個,也就糗百主域
  • 5.點擊進去,查看response響應的信息。

這下明白了,原來返回的數據是使用了gzip進行壓縮了,我們要想獲取HTML頁碼,還要進行解壓縮操作。下面升級我們的代碼:

這里咱們已經明確了糗百使用的是gzip壓縮算法,可以直接只使用gzip進行解壓縮。但是這里考慮到大家可能以后抓的網站屬于老網站,,老網站一般使用的是古老的deflate壓縮算法,現在很少人用了。關于gzip的知識,大家

運行一下打印結果如下:

這里距離我們想要的HTML代碼數據,格式按網頁格式輸出,還需要加一些轉碼:

也就是加入: print(content.decode(encoding=’utf-8′, errors=’strict’))將其轉換成utf-8格式的數據,這樣輸出的就是HTML文件了。至此,我們的小爬蟲終于歷經千辛萬苦,爬到了糗百的HTML代碼數據。

3.爬取一個頁面的圖片代碼

下面哥要進行正則解析了,坑了我好久啊啊啊嗯啊啊啊

我們要抓圖片,這里需要看網頁的html源碼,找到用戶發的圖片信息。<img src=”//pic.qiushibaike.com/system/pictures/12067/120676262/medium/app120676262.jpeg”這個就是圖片鏈接,下面我們要用python解析出這個圖片鏈接,媽的正則表達式太不好用了(我用的還不熟……)

這里將爬取的圖片保存到了硬盤上,首先判斷硬盤是否已經存在文件夾,如果存在,則直接寫入圖片數據。如果不存在,則進行自動創建文件夾操作。爬取結果如下:

4.本篇小結

大家可以升一下級,寫抓任意頁面的圖片。本章,咱們一步一步爬取了糗百的圖片。雖然上面東西大家可能看著比較簡單,實際上,我在同步編寫的代碼的時候,遇到了好幾個坑爹的地方。下一篇我們將要稱熱打鐵,將繼續爬取糗百的段子,作者,評論數,點贊數等等。

轉載請注明:天天炫斗洛漓 » Python3.6爬蟲入門練手小項目之一:使用爬蟲爬取糗事百科網站圖片項目

贊賞作者

微信贊賞支付寶贊賞

喜歡 (4)or分享 (0)

如果您喜歡本站文章,感覺本站的資源對您有幫助,請狠狠點擊下面

每累計贊助40元,即可讓本站按最低配置運行一個月,感謝您的支持!

發表我的評論
取消評論

表情

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址