謹以此記錄個人學習過程,以期爲後來者提供一絲半毫之參考。
準備工作:pip install urllib
第一:實現基本網頁抓取。
第二:有些網站不能通過機器簡單訪問。需要使用代理繞過服務器的鑑別阻攔。
第三: 考慮把User-Agent做成一個列表,以便隨機使用。常見 【User-Agent】
和參考代碼有區別,沒有使用隨機 IP。
from urllib import request
import random
from urllib.request import build_opener,ProxyHandler
# User_Agent列表
user_agent_list = [
"Mozilla/5.0(Macintosh;IntelMacOSX10.6;rv:2.0.1)Gecko/20100101Firefox/4.0.1",
"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1)",
"Opera/9.80(WindowsNT6.1;U;en)Presto/2.8.131Version/11.11",
"Mozilla/5.0(Macintosh;IntelMacOSX10_7_0)AppleWebKit/535.11(KHTML,likeGecko)Chrome/17.0.963.56Safari/535.11",
"Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1)",
"Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;SE2.XMetaSr1.0;SE2.XMetaSr1.0;.NETCLR2.0.50727;SE2.XMetaSr1.0)"
]
# 產生一個隨機User-Agent
headers ={
# 從上面列表中隨機取出一個
# random.choice:從一個不爲空的課表裏面隨機取出一個
'User-Agent':random.choice(user_agent_list)
}
# ip地址列表:
ip_list=[
# '209.97.171.128',
'114.250.25.19'
]
# 產生一個隨機ip
proxies={
'http':random.choice(ip_list)
}
url = 'http://www.qiushibaike.com/'
req = request.Request(url,headers=headers)
# 創建代理ip對象
print(proxies)
pro_supper = ProxyHandler(proxies)
# 不能使用urlopen()函數,使用build_opener創建一個對象
opener = build_opener(pro_supper)
# 發送請求
res = opener.open(req)
result = res.read().decode('utf8')
print(result)
鳴謝: