網絡爬蟲-1(共?):爬取網頁的預備知識(簡單爬取 / 虛擬頭信息)——連接url

        謹以此記錄個人學習過程,以期爲後來者提供一絲半毫之參考。

 

準備工作: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)

 

鳴謝:

https://blog.csdn.net/qq_41293711/article/details/81319049

https://blog.csdn.net/qq_42156420/article/details/81067343

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章