Python request請求


1.基礎請求框架

from urllib import request
url=r"http://www.baidu.com"
req=request.Request(url)    #構造請求
response=request.urlopen(req).read().decode()   #獲取響應
print(response)

2.自定義header

from urllib import request
import re
headers={
    "User-Agent":"Mozilla/5.0"
}
url=r"http://www.baidu.com"
req=request.Request(url,headers=headers)    #構造請求
response=request.urlopen(req).read().decode()   #獲取響應
pat=r"<title>(.*?)</title>"     #正則匹配規則
data=re.findall(pat,response)   #正則匹配篩選
print(data)

3.利用隨機數隨機更換agent

from urllib import request
import re
import random

#將多個user-agent值放入list
agentlist=["Mozilla/5.0",
           "Mozilla/5.0",
           "Mozilla/5.0"]
#利用隨機數隨機取一個agent
agent=random.choice(agentlist)
print(agent)
headers={
    "User-Agent":agent
}
url=r"http://www.baidu.com"
req=request.Request(url,headers=headers)    #構造請求
response=request.urlopen(req).read().decode()   #獲取響應
pat=r"<title>(.*?)</title>"     #正則匹配規則
data=re.findall(pat,response)   #正則匹配篩選
print(data)

 



 

urlopen是一個特殊的opener(模塊構建的)

urlopen()方法不支持代理、cookie等其他的HTTP/HTTPS高級功能。

要支持這些功能:通過request.build_opener()方法創建自定義opener對象。

使用自定義的opener對象,調用open()方法發送請求。

如果程序里所有請求都使用自定義opener,可以使用request.install_opener()將自定義的opener對象定義為全局opener,表示如果之后凡是調用urlopen,都將使用這個opener。

from urllib import request
import re
headers={
    "User-Agent":"Mozilla/5.0"
}
url=r"http://www.baidu.com"
#構建HTTP處理器對象(專門處理HTTP請求的對象)
http_hander=request.HTTPHandler()
#創建自定義opener
opener=request.build_opener(http_hander)
#創建自定義請求對象
req=request.Request(url,headers=headers)
#發送請求,獲取響應
response=opener.open(req).read().decode()
pat=r"<title>(.*?)</title>"
data=re.findall(pat,response)
print(data)
#把自定義opener設置為全局,這樣用urlopen發送的請求也會使用自定義的opener
request.install_opener(opener)

#此時的urltopen也會使用自定義的opener
test=request.urlopen(req)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM