python3中requests庫(kù)重定向獲取URL
前言:
有時(shí)候 我們抓取一些頁(yè)面,發(fā)現(xiàn)一些url 有重定向, 返回 301 ,或者302 這種情況。 那么我們?nèi)绾潍@取真實(shí)的URL呢? 或者跳轉(zhuǎn)后的URL呢?
這里我使用 requests 作為演示
假設(shè)我們要訪問(wèn) 某東的電子商務(wù)網(wǎng)站,我只記得網(wǎng)站好像是 http://jd.com
import requests
def request_jd():
url = 'http://jd.com/'
#allow_redirects= False 這里設(shè)置不允許跳轉(zhuǎn)
response = requests.get(url=url, allow_redirects=False)
print(response.headers)
print(response.status_code)
看結(jié)果 返回response header 中有一個(gè)屬性 Location ,代表重定向了 'Location': 'https://www.jd.com'

我們?cè)跒g覽器中 chrome network 面板 ,抓包觀察。 注意把 preserve log 這個(gè)選項(xiàng)勾選上。
從 瀏覽器的response header 中 我們可以看到 Location, 從 General 我們可以看到 status code 301 ,發(fā)生了跳轉(zhuǎn)。

方法1:
你現(xiàn)在知道如何獲取跳轉(zhuǎn)后的URL了嗎,直接從response header,獲取 Location 即可。
在request.header 中 返回header 的key是不區(qū)分大小寫的, 所以全小寫也是可以正確取值的。
import requests
def request_jd():
url = 'http://jd.com/'
response = requests.get(url=url, allow_redirects=False)
#return response.headers.get('location')
return response.headers.get('Location')方法2:
其實(shí)默認(rèn)情況下, requests 會(huì)自動(dòng)跳轉(zhuǎn),如果發(fā)生了重定向,會(huì)自動(dòng)跳到location 指定的URL,我們只需要訪問(wèn)URL, 獲取response, 然后 response.url 就可以獲取到真實(shí)的URL啦。
import requests
def request_jd():
url = 'http://jd.com/'
response = requests.get(url=url)
return response.url到此這篇關(guān)于python3中requests庫(kù)重定向獲取URL的文章就介紹到這了,更多相關(guān)python獲取URL 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
判斷Threading.start新線程是否執(zhí)行完畢的實(shí)例
這篇文章主要介紹了判斷Threading.start新線程是否執(zhí)行完畢的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
使用Python手工計(jì)算x的算數(shù)平方根,來(lái)自中國(guó)古人的數(shù)學(xué)智慧
本篇采用的計(jì)算方法既非二分法也非牛頓迭代法,而是把中國(guó)古代的手工計(jì)算平方根的方法轉(zhuǎn)成代碼來(lái)完成。代碼有點(diǎn)煩雜,算是拋磚引玉吧,期待高手們寫出更好的代碼來(lái)2021-09-09
python的import?機(jī)制是怎么實(shí)現(xiàn)的
這篇文章主要介紹了python的import?機(jī)制是怎么實(shí)現(xiàn)的,import有Python運(yùn)行時(shí)的全局模塊池的維護(hù)和搜索、解析與搜索模塊路徑的樹狀結(jié)構(gòu)等作用,下文具體相關(guān)介紹需要的小伙伴可以參考一下2022-05-05
python中翻譯功能translate模塊實(shí)現(xiàn)方法
在本篇文章中小編給各位整理了一篇關(guān)于python中翻譯功能translate模塊實(shí)現(xiàn)方法,有需要的朋友們可以參考下。2020-12-12
Python使用everything庫(kù)構(gòu)建文件搜索和管理工具
在這篇博客中,我將分享如何使用 Python 的 everytools庫(kù)構(gòu)建一個(gè)簡(jiǎn)單的文件搜索和管理工具,這個(gè)工具允許用戶搜索文件、查看文件路徑、導(dǎo)出文件信息到 Excel,以及生成配置文件,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-08-08
python庫(kù)matplotlib繪制坐標(biāo)圖
這篇文章主要為大家介紹了python庫(kù)matplotlib繪制坐標(biāo)圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10

