小編給大家分享一下用python爬蟲網(wǎng)頁數(shù)據(jù)的流程步驟,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!
創(chuàng)新互聯(lián)建站是一家專業(yè)提供金塔企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、H5場景定制、小程序制作等業(yè)務(wù)。10年已為金塔眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
python爬蟲網(wǎng)頁的基本流程:
首先選取一部分精心挑選的種子URL。
將這些URL放入待抓取URL隊列。
從待抓取URL隊列中讀取待抓取隊列的URL,解析DNS,并且得到主機(jī)的IP,并將URL對應(yīng)的網(wǎng)頁下載下來,存儲進(jìn)已下載網(wǎng)頁庫中。此外,將這些URL放進(jìn)已抓取URL隊列。
分析已抓取URL隊列中的URL,從已下載的網(wǎng)頁數(shù)據(jù)中分析出其他URL,并和已抓取的URL進(jìn)行比較去重,最后將去重過的URL放入待抓取URL隊列,從而進(jìn)入下一個循環(huán)。
1、HTTP請求實現(xiàn)
使用urllib2/urllib實現(xiàn):
urllib2和urllib是Python中的兩個內(nèi)置模塊,要實現(xiàn)HTTP功能,實現(xiàn)方式是以urllib2為主,urllib為輔。
urllib2提供一個基礎(chǔ)函數(shù)urlopen,通過向指定的URL發(fā)出請求來獲取數(shù)據(jù)。最簡單的形式是:
import urllib2 response=urllib2.urlopen('http://www.zhihu.com') html=response.read() print html
其實可以將上面對http://www.zhihu.com的請求響應(yīng)分為兩步,一步是請求,一步是響應(yīng),形式如下:
import urllib2 # 請求 request=urllib2.Request('http://www.zhihu.com') # 響應(yīng) response = urllib2.urlopen(request) html=response.read() print html
還有post請求實現(xiàn):
import urllib import urllib2 url = 'http://www.xxxxxx.com/login' postdata = {'username' : 'qiye', 'password' : 'qiye_pass'} # info 需要被編碼為urllib2能理解的格式,這里用到的是urllib data = urllib.urlencode(postdata) req = urllib2.Request(url, data) response = urllib2.urlopen(req) html = response.read()
2、請求頭headers處理
將上面的例子改寫一下,加上請求頭信息,設(shè)置一下請求頭中的User-Agent域和Referer域信息。
import urllib import urllib2 url = 'http://www.xxxxxx.com/login' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' referer='http://www.xxxxxx.com/' postdata = {'username' : 'qiye', 'password' : 'qiye_pass'} # 將user_agent,referer寫入頭信息 headers={'User-Agent':user_agent,'Referer':referer} data = urllib.urlencode(postdata) req = urllib2.Request(url, data,headers) response = urllib2.urlopen(req) html = response.read()
3、Cookie處理
urllib2對Cookie的處理也是自動的,使用CookieJar函數(shù)進(jìn)行Cookie的管理。如果需要得到某個Cookie項的值,可以這么做:
import urllib2 import cookielib cookie = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) response = opener.open('http://www.zhihu.com') for item in cookie: print item.name+':'+item.value
但是有時候會遇到這種情況,我們不想讓urllib2自動處理,我們想自己添加Cookie的內(nèi)容,可以通過設(shè)置請求頭中的Cookie域來做:
import urllib2 opener = urllib2.build_opener() opener.addheaders.append( ( 'Cookie', 'email=' + "xxxxxxx@163.com" ) ) req = urllib2.Request( "http://www.zhihu.com/" ) response = opener.open(req) print response.headers retdata = response.read()
看完了這篇文章,相信你對用python爬蟲網(wǎng)頁數(shù)據(jù)的流程步驟有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站欄目:用python爬蟲網(wǎng)頁數(shù)據(jù)的流程步驟
本文網(wǎng)址:http://sd-ha.com/article4/jgspie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、Google、外貿(mào)網(wǎng)站建設(shè)、虛擬主機(jī)、移動網(wǎng)站建設(shè)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)