python爬取準備三urllib2模塊-創(chuàng)新互聯(lián)

urllib/urllib2默認的User-Agent是Python-urllib/2.7,容易被檢查到是爬蟲,所以我們要構(gòu)造一個請求對象,要用到request方法。

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的潢川網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1.查看Header信息

python爬取準備三 urllib2模塊

2.設(shè)置User-Agent模仿瀏覽器訪問數(shù)據(jù)

Request總共三個參數(shù),除了必須要有url參數(shù),還有下面兩個:
data(默認空):是伴隨 url 提交的數(shù)據(jù)(比如要post的數(shù)據(jù)),同時 HTTP 請求將從 "GET"方式 改為 "POST"方式。
headers(默認空):是一個字典,包含了需要發(fā)送的HTTP報頭的鍵值對

# _*_ coding:utf-8 _*_
import urllib2
# User-Agent是爬蟲與反爬蟲的第一步
ua_headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'}
# 通過urllib2.Request()方法構(gòu)造一個請求對象
request = urllib2.Request('http://www.baidu.com/',headers=ua_headers)
#向指定的url地址發(fā)送請求,并返回服務(wù)器響應(yīng)的類文件對象
response = urllib2.urlopen(request)
# 服務(wù)器返回的類文件對象支持python文件對象的操作方法
# read()方法就是讀取文件里的全部內(nèi)容,返回字符串
html = response.read()
print html

3.選擇隨機的Use-Agent

為了防止封IP,先生成一個user-agent列表,然后從中隨機選擇一個

# _*_ coding:utf-8 _*_
import urllib2
import random
url = 'http:/www.baidu.com/'
# 可以試User-Agent列表,也可以是代理列表
ua_list = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]
# 在User-Agent列表中隨機選擇一個User-Agent
user_agent = random.choice(ua_list)
# 構(gòu)造一個請求
request = urllib2.Request(url)
# add_header()方法添加/修改一個HTTP報頭
request.add_header('User-Agent',user_agent)
#get_header()獲取一個已有的HTTP報頭的值,注意只能第一個字母大寫,后面的要小寫
print request.get_header('User-agent')

4.urllib和urllib2的主要區(qū)別

urllib和urllib2都是接受URL請求的相關(guān)模塊,但是提供了不同的功能,最顯著的區(qū)別如下:

(1)urllib僅可以接受URL,不能創(chuàng)建,設(shè)置headers的request類實例;

(2)但是urllib提供urlencode()方法用來GET查詢字符串的產(chǎn)生,而urllib2則沒有(這是urllib和urllib2經(jīng)常一起使用的主要原因)

(3)編碼工作使用urllib的urlencode()函數(shù),幫我們講key:value這樣的鍵值對轉(zhuǎn)換成‘key=value’這樣的字符串,解碼工作可以使用urllib的unquote()

函數(shù)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文標(biāo)題:python爬取準備三urllib2模塊-創(chuàng)新互聯(lián)
鏈接分享:http://muchs.cn/article4/ddpooe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)網(wǎng)站制作、網(wǎng)站內(nèi)鏈、電子商務(wù)、網(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)

小程序開發(fā)