- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 449 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 60 点
- 帖子
- 1
- 精华
- 0
- 在线时间
- 26 小时
- 注册时间
- 2018-8-22
- 最后登录
- 2021-9-23
初中生
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
 - 449 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 60 点
- 帖子
- 1
- 精华
- 0
- 在线时间
- 26 小时
- 注册时间
- 2018-8-22
- 最后登录
- 2021-9-23
|
300论坛币
|
在写一个Python爬虫的时候遇到了一个问题,
我现在能提取到像这样的下载链接 https://cn.imslp.org/wiki/Specia ... rAccept/148302/patq但是打开后如下,它会进行跳转,跳转两次之后得到的.mid的链接才是真正的文件链接
如果我通过request我的第一个链接,然后用response.geturl()可以得到跳转到中间那个链接的url
而且我发现在刚才那个图里面中间那个链接我看他的响应头里的location就有第三个链接的url(我想要的)
但是我request我geturl得到的中间的链接之后,再次geturl,并不能得到第三个链接的url(我想要的)
而且查询中间链接的响应头里,也没有location信息!
而且这时候我查我request第中间链接的状态码已经不是302是200了…
我试着给请求中间链接的request.get()里加了allow_redirects=False但好像并没有什么用
我又不想用selenium,加载页面太慢了
求一个能帮我获取到第三个链接url的办法。
以下是这一小块的部分代码,或许有些可以直接拿来用用。
import requests
import urllib.request
from requests.packages import urllib3
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
urllib3.disable_warnings()
def get_jump_url(url):
'''
获取跳转后的真实下载链接
:param url: 页面中的下载链接
:return: 跳转后的真实下载链接
'''
req = urllib.request.Request(url)
response = urllib.request.urlopen(req)
dlurl = response.geturl()
return dlurl
url = 'https://cn.imslp.org/wiki/Special:IMSLPDisclaimerAccept/148302/patq'
dlurl = get_jump_url(url)
#请求第一次跳转后的链接
response=requests.get(dlurl,allow_redirects=False,verify=False)
|
|