03 urllib庫的高階用法

2022-09-24 06:42:08 字數 2185 閱讀 7754

有些**不會同意程式直接用上面的方式進行訪問,如果識別有問題,那麼站點根本不會響應,所以為了完全模擬瀏覽器的工作

1.1 設定請求頭

其中user-agent代表用的哪個請求的瀏覽器

**如下:

from urllib.request import urlopen

from urllib.request import request

url = ''

user_agent = 'mozilla/4.0 (compatible; msie 5.5; windows nt)'

headers =

request = request(url, headers=headers)

response = urlopen(request)

page = response.read()

對付防盜煉,伺服器會識別headers中的referer是不是它自己,如果不是,有的伺服器不會響應,所以我們還可以在headers中加入referer

**如下:

headers =
提示

在此可以使用多個user_agent:然後隨即選擇

import urllib.request

import random

ua_list = [

"mozilla/4.0 (compatible; msie 8.0; windows nt 6.0)",

"mozilla/5.0 (windows; u; windows nt 5.2) gecko/2008070208 firefox/3.0.1",

"mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0; mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1) ; qihu 360ee)"

]user_agent = random.choice(ua_list)

request = urllib.request.request("")

request.add_header("user-agent",user_agent)

#區分大小寫

print(request.get_header("user-agent"))

對於隨機useragent,python有提供乙個模組庫fake-useragent,安裝如下:

pip3 install fake-useragent
1.2 設定**proxy
假如乙個**它會檢測某一段時間某個ip 的訪問次數,如果訪問次數過多,它會禁止你的訪問。所以你可以設定一些**伺服器來幫助你做工作,每隔一段時間換乙個**,**君都不知道是誰在搗鬼了,這酸爽!

分類:

**如下:

from urllib.request import proxyhandler

from urllib.request import build_opener

proxy = proxyhandler()

opener = build_opener(proxy)

url = ""

response = opener.open(url)

print(response.read().decode("utf-8"))

可以通過下面的方法把 debug log 開啟,這樣收發包的內容就會在螢幕上列印出來,方便除錯,這個也不太常用,僅提一下

03urllib請求帶中文的路徑處理

小新主要是對 小新的處理 from urllib import request,parse def keyword kw qs qs parse.urlencode qs base url qs req request.request base url response request.urlope...

Python爬蟲 Urllib庫的高階用法

有些 不會同意程式直接用上面的方式進行訪問,如果識別有問題,那麼站點根本不會響應,所以為了完全模擬瀏覽器的工作,我們需要設定一些headers 的屬性。首先,開啟我們的瀏覽器,除錯瀏覽器f12,我用的是chrome,開啟網路監聽,示意如下,比如知乎,點登入之後,我們會發現登陸之後介面都變化了,出現乙...

urllib庫的常見用法

先導入三個包 複製 最簡單的urlopen url response urllib.request.urlopen url print response.read 複製 user agent cookie referer host content type 複製 url values headers...