重定向的状态码
- 301 redirect: 301 代表永久性转移(Permanently Moved)
- 302 redirect: 302 代表暂时性转移(Temporarily Moved )
实例
请求: http://www.cninfo.com.cn/new/disclosure/detail?plate=szse&orgId=9900023797&stockCode=300424&announcementId=1208372407&announcementTime=2020-09-01%2019:28
会做一个 302 重定向,最终到一个 pdf 资源页。
默认启动重定向,返回的状态码是最后的 200:
import requests
first_link = '''http://www.cninfo.com.cn/new/disclosure/detail?plate=szse&orgId=9900023797&stockCode=300424&announcementId=1208372407&announcementTime=2020-09-01%2019:28'''
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}
resp = requests.get(first_link, headers=headers)
print(resp)
禁用重定向之后,返回的状态码是 302:
import requests
first_link = '''http://www.cninfo.com.cn/new/disclosure/detail?plate=szse&orgId=9900023797&stockCode=300424&announcementId=1208372407&announcementTime=2020-09-01%2019:28'''
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}
resp = requests.get(first_link, headers=headers,
allow_redirects=False,
)
print(resp)
查看重定向的历史,并且记录最终重定向到的 url:
import requests
first_link = '''http://www.cninfo.com.cn/new/disclosure/detail?plate=szse&orgId=9900023797&stockCode=300424&announcementId=1208372407&announcementTime=2020-09-01%2019:28'''
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}
resp = requests.get(first_link, headers=headers)
redit_list = resp.history
# redit_link = redit_list[0].headers["location"]
redit_link = redit_list[len(redit_list)-1].headers["location"]
print(redit_link)