中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python爬取準備三 urllib2模塊

發布時間:2020-07-08 18:27:32 來源:網絡 閱讀:193 作者:薩瓦迪迪卡 欄目:系統運維

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

1.查看Header信息

python爬取準備三 urllib2模塊

2.設置User-Agent模仿瀏覽器訪問數據

Request總共三個參數,除了必須要有url參數,還有下面兩個:
data(默認空):是伴隨 url 提交的數據(比如要post的數據),同時 HTTP 請求將從 "GET"方式 改為 "POST"方式。
headers(默認空):是一個字典,包含了需要發送的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()方法構造一個請求對象
request = urllib2.Request('http://www.baidu.com/',headers=ua_headers)
#向指定的url地址發送請求,并返回服務器響應的類文件對象
response = urllib2.urlopen(request)
# 服務器返回的類文件對象支持python文件對象的操作方法
# read()方法就是讀取文件里的全部內容,返回字符串
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)
# 構造一個請求
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的主要區別

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

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

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

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

函數

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

揭西县| 泉州市| 友谊县| 措勤县| 南木林县| 阿勒泰市| 蒙自县| 临夏县| 兴和县| 常山县| 六枝特区| 咸阳市| 石嘴山市| 临桂县| 大足县| 比如县| 黑龙江省| 河北省| 临朐县| 刚察县| 沙田区| 沙湾县| 道孚县| 平遥县| 东乡| 松潘县| 德安县| 通河县| 金昌市| 越西县| 合肥市| 马公市| 如皋市| 海丰县| 阳城县| 通江县| 台中市| 登封市| 阳江市| 林周县| 浑源县|