這篇文章主要介紹“Python常用的爬蟲(chóng)技巧實(shí)例分析”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Python常用的爬蟲(chóng)技巧實(shí)例分析”文章能幫助大家解決問(wèn)題。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的永德網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
1、基本抓取網(wǎng)頁(yè)
get方法
import urllib2
url "http://www.baidu.com"
respons = urllib2.urlopen(url)
print response.read()
post方法
import urllib
import urllib2
url = "http://abcde.com"
form = {'name':'abc','password':'1234'}
form_data = urllib.urlencode(form)
request = urllib2.Request(url,form_data)
response = urllib2.urlopen(request)
print response.read()
2、使用代理IP
在開(kāi)發(fā)爬蟲(chóng)過(guò)程中經(jīng)常會(huì)遇到IP被封掉的情況,這時(shí)就需要用到代理IP;
在urllib2包中有ProxyHandler類(lèi),通過(guò)此類(lèi)可以設(shè)置代理訪(fǎng)問(wèn)網(wǎng)頁(yè),如下代碼片段:
import urllib2
proxy = urllib2.ProxyHandler({'http': '127.0.0.1:8087'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
response = urllib2.urlopen('http://www.baidu.com')
print response.read()
創(chuàng)新互聯(lián)軟件,可以方便快捷做到代理IP的功能,不需要復(fù)雜的代碼就能幫到你!
3、Cookies處理
cookies是某些網(wǎng)站為了辨別用戶(hù)身份、進(jìn)行session跟蹤而儲(chǔ)存在用戶(hù)本地終端上的數(shù)據(jù)(通常經(jīng)過(guò)加密),python提供了cookielib模塊用于處理cookies,cookielib模塊的主要作用是提供可存儲(chǔ)cookie的對(duì)象,以便于與urllib2模塊配合使用來(lái)訪(fǎng)問(wèn)Internet資源.
代碼片段:
import urllib2, cookielib
cookie_support= urllib2.HTTPCookieProcessor(cookielib.CookieJar())
opener = urllib2.build_opener(cookie_support)
urllib2.install_opener(opener)
content = urllib2.urlopen('http://XXXX').read()
關(guān)鍵在于CookieJar(),它用于管理HTTP cookie值、存儲(chǔ)HTTP請(qǐng)求生成的cookie、向傳出的HTTP請(qǐng)求添加cookie的對(duì)象。整個(gè)cookie都存儲(chǔ)在內(nèi)存中,對(duì)CookieJar實(shí)例進(jìn)行垃圾回收后cookie也將丟失,所有過(guò)程都不需要單獨(dú)去操作。
手動(dòng)添加cookie
cookie = "PHPSESSID=91rurfqm2329bopnosfu4fvmu7; kmsign=55d2c12c9b1e3; KMUID=b6Ejc1XSwPq9o756AxnBAg="
request.add_header("Cookie", cookie)
4、偽裝成瀏覽器
某些網(wǎng)站反感爬蟲(chóng)的到訪(fǎng),于是對(duì)爬蟲(chóng)一律拒絕請(qǐng)求。所以用urllib2直接訪(fǎng)問(wèn)網(wǎng)站經(jīng)常會(huì)出現(xiàn)HTTP Error 403: Forbidden的情況
對(duì)有些 header 要特別留意,Server 端會(huì)針對(duì)這些 header 做檢查
User-Agent 有些 Server 或 Proxy 會(huì)檢查該值,用來(lái)判斷是否是瀏覽器發(fā)起的 Request
Content-Type 在使用 REST 接口時(shí),Server 會(huì)檢查該值,用來(lái)確定 HTTP Body 中的內(nèi)容該怎樣解析。
這時(shí)可以通過(guò)修改http包中的header來(lái)實(shí)現(xiàn),代碼片段如下:
import urllib2
headers = {
'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'
}
request = urllib2.Request(
url = 'http://my.oschina.net/jhao104/blog?catalog=3463517',
headers = headers
)
print urllib2.urlopen(request).read()
關(guān)于“Python常用的爬蟲(chóng)技巧實(shí)例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。