為什麼要學習handler?
如果定製更高階的請求頭,隨著業務邏輯的複雜請求物件的定製已經滿足不了我們的需求(動態cookie和**不能使用請求物件的定製)
#handler的基本使用
import
urllib.request
url = '
'headers =
request = urllib.request.request(url=url,headers=headers)
#handler build_opener open
#(1)獲取handler物件
#(2)獲取opener物件
opener =urllib.request.build_opener(handler)
#(3)呼叫open方法
response =opener.open(request)
content = response.read().decode('
utf-8')
print(content)
1)突破自身ip訪問限制,訪問國外站點
2)訪問一些單位或團體內部資源
3)提高訪問速度
通常**伺服器都設定乙個較大的硬碟緩衝區,當有外界的資訊通過時,同時也將其儲存到緩衝區中,當其他使用者再訪問相同的資訊時,則直接由緩衝區中取出資訊,傳給使用者,以提高訪問速度
4)隱藏真實ip
上網者也可以通過這種方法隱藏自己的ip,免受攻擊
建立request物件
建立proxyhandler物件
用handler物件建立opener物件
使用opener.open函式傳送請求
importurllib.request
url = '
/s?wd=ip
'headers =
#請求物件的定製
request = urllib.request.request(url=url,headers=headers)
#**模擬瀏覽器訪問伺服器
#**ip設定,「快**」找免費ip,免費不好使就花錢買乙個ip
proxies =
handler = urllib.request.proxyhandler(proxies =proxies)
opener =urllib.request.build_opener(handler)
response =opener.open(request)
#獲取響應的資訊
content = response.read().decode('
utf-8')
#儲存with open('
daili.html
','w
',encoding='
utf-8
')as fp:
fp.write(content)
**ip**:
#**池設定
import
urllib.request
proxies_pool =[,,
]import
random
proxies =random.choice(proxies_pool)
url = '
/s?wd=ip
'headers =
request = urllib.request.request(url=url,headers=headers)
handler = urllib.request.proxyhandler(proxies=proxies)
opener =urllib.request.build_opener(handler)
response =opener.open(request)
content = response.read().decode('
utf-8')
with open(
'daili.html
','w
',encoding='
utf-8
')as fp:
fp.write(content)
爬蟲 爬蟲初識
網路爬蟲 又被稱為網頁蜘蛛,網路機械人 是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼,通俗的講就是通過程式去獲取web頁面上自己想要的資料,也就是自動抓取資料。發起請求 通過http庫向目標站點發起請求,也就是傳送乙個request,請求可以包含額外的header等資訊,等待伺服器...
爬蟲 07 反爬蟲
回到頂部 爬蟲和反爬蟲基本概念 爬蟲 自動獲取 資料的程式,關鍵是批量的獲取。反爬蟲 使用技術手段防止爬蟲程式的方法。誤傷 反爬蟲技術將普通使用者識別為爬蟲,如果誤傷過高,效果再高也不能用。成本 反爬蟲需要的人力和機器成本。攔截 成功攔截爬蟲,一般攔截率越高,誤傷率越高。反爬蟲的目的 初級爬蟲 簡單...
爬蟲(一)初識爬蟲
網路爬蟲 又被稱為網頁蜘蛛,網路機械人 就是模擬瀏覽器傳送網路請求,接收請求響應,一種按照一定的規則,自動地抓取網際網路資訊的程式。原則上,只要是瀏覽器 客戶端 能做的事情,爬蟲都能夠做 爬蟲的工作流程 robots協議 通過robots協議告訴搜尋引擎哪些頁面可以抓取,哪些頁面不能抓取,但它僅僅是...