網站首頁 編程語言 正文
前言:
有時候 我們抓取一些頁面,發現一些url 有重定向, 返回 301 ,或者302 這種情況。 那么我們如何獲取真實的URL呢? 或者跳轉后的URL呢?
這里我使用 requests 作為演示
假設我們要訪問 某東的電子商務網站,我只記得網站好像是 http://jd.com
import requests def request_jd(): url = 'http://jd.com/' #allow_redirects= False 這里設置不允許跳轉 response = requests.get(url=url, allow_redirects=False) print(response.headers) print(response.status_code)
看結果 返回response header 中有一個屬性 Location ,代表重定向了 'Location': 'https://www.jd.com'
我們在瀏覽器中 chrome network 面板 ,抓包觀察。 注意把 preserve log 這個選項勾選上。
從 瀏覽器的response header 中 我們可以看到 Location, 從 General 我們可以看到 status code 301 ,發生了跳轉。
方法1:
你現在知道如何獲取跳轉后的URL了嗎,直接從response header,獲取 Location 即可。
在request.header 中 返回header 的key是不區分大小寫的, 所以全小寫也是可以正確取值的。
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:
其實默認情況下, requests 會自動跳轉,如果發生了重定向,會自動跳到location 指定的URL,我們只需要訪問URL, 獲取response, 然后 response.url 就可以獲取到真實的URL啦。
import requests def request_jd(): url = 'http://jd.com/' response = requests.get(url=url) return response.url
原文鏈接:https://blog.csdn.net/u010339879/article/details/119517222
相關推薦
- 2022-04-12 python入門之scrapy框架中Request對象和Response對象的介紹_python
- 2022-05-11 如果解決tomcat端口號被占用
- 2023-01-21 Python?configparser模塊的用法示例代碼_python
- 2022-06-23 nginx日志格式分析以及修改詳解_nginx
- 2022-04-10 微信小程序canvas drawImage 圖片展示的方法
- 2022-09-15 C++中的整形字節數_C 語言
- 2023-07-22 測試springboot log4j2異步配置是否生效
- 2023-09-17 Android 獲取Wifi列表詳解(包含動態權限申請)
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支