Python爬蟲Csdn系列I

來源:互聯網
上載者:User

標籤:爬蟲   csdn   部落格   python爬蟲   urllib2   

Python爬蟲Csdn系列I
By 白熊花田(http://blog.csdn.net/whiterbear)

說明:

我會在這個系列介紹如何利用python寫一個csdn爬蟲,並將給定的Csdn使用者的部落格的所有文章儲存起來。嗯,實用性貌似不是很大,寫著玩,這個系列後,會有更好玩的更進階的爬蟲出現。

原因:

本來想學cookie的,後來發現爬取csdn的文章偽裝成瀏覽器去訪問就行了。

本次目標:

爬取csdn某使用者的文章列表。這裡以我的blog為例,僅僅開啟第一列文章列表,不做任何分析,只是驗證可以爬取csdn文章。

失敗的例子:

# -*- coding:utf-8 -*-import sysimport urllibimport urllib2reload(sys)sys.setdefaultencoding('utf-8')#給定一個csdn的部落格專欄連結url = 'http://blog.csdn.net/sodleave'#嘗試開啟response = urllib2.urlopen(url)html = response.read()print html

結果:



分析:


訪問被拒,因為csdn不允許程式直接存取,所以,我們需要將url請求偽裝成瀏覽器訪問。使用chrome的審查元素中的Network或者使用其他的抓包工具,在瀏覽器地址中鍵入一個csdn地址,比如http://blog.csdn.net/sodleave,斷行符號,此時查看發出去的get請求(使用chrome可以查看Network響應中的第一欄(名字是sodleave,如果你是輸入上面的url的話),右鍵選擇Copy request headers)。這個請求的內容如下:

GET /sodleave HTTP/1.1Host: blog.csdn.netConnection: keep-aliveAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.11 Safari/537.36Accept-Encoding: gzip, deflate, sdchAccept-Language: zh-CN,zh;q=0.8,en;q=0.6Cookie: bdshare….

使用上面的User-Agent資訊,就可以偽裝成瀏覽器。不要問我為什麼這樣有這個資訊就行,我只知道,csdn一定會根據這個資訊判斷請求方是否是瀏覽器。使用urllib2.Request函數將綁定了header的請求發送出去,我們就可以等待響應了。

代碼:
# -*- coding:utf-8 -*-import sysimport urllibimport urllib2from bs4 import BeautifulSoupreload(sys)sys.setdefaultencoding('utf-8')#偽裝成瀏覽器,注意headers必須是一個字典headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36'}#我們指定url並發送請求req = urllib2.Request('http://blog.csdn.net/sodleave', headers=headers)#接著服務端響應來自用戶端的請求response = urllib2.urlopen(req) soup = BeautifulSoup(response.read())print soup

結果:


分析:

僅僅是添加了添加了一個頭部就可以訪問csdn的網頁了,那麼接下來我們就去擷取文章資訊吧。

未完待續。





Python爬蟲Csdn系列I

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.