问题:Python爬取某网站图片,源代码里的url通过两次重定向到图片最终位置,requests.get(url)不能获得图片的最后位置
问题相关代码:
#网页源代码位置:view-source:https://www.caominhd.com/play/61601-0-0.html
url='https://bbcc.8ximg.com/?url=V48QM5z60wYeaLQvZuNgfWAMqu/gIqnrwiZttBF/hkyYrkabgZD3XGY6DlF7wkNF7jVwKnLRzl88Sq9AByeUZw&ly=A9tOYs2qggYCabA2dLdiJnoS/ezpbPa0nDE86kVp%27
re=requests.get(url)
print(re.url,
re.headers,
re.status_code,
re.history)
new_url=re.url
r=requests.get(new_url)
print(r.url,
r.headers,
r.status_code,
r.history)
运行结果及报错内容:
C:\Users\Administrator\AppData\Local\Programs\Python\Python38\python.exe D:/Python程序制作/美图包/自定义出图程序.py
https://bbcc.8ximg.com/api/img.php?url=V48QM5z60wYeaLQvZuNgfWAMqu/gIqnrwiZttBF/hkyYrkabgZD3XGY6DlF7wkNF7jVwKnLRzl88Sq9AByeUZw
{'Server': 'nginx', 'Date': 'Mon, 12 Sep 2022 12:19:51 GMT', 'Content-Type': 'text/html; charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Accept-Encoding', 'Strict-Transport-Security': 'max-age=31536000', 'Access-Control-Allow-Origin': '', 'Content-Encoding': 'gzip'}
200
[<Response [302]>]
https://bbcc.8ximg.com/api/img.php?url=V48QM5z60wYeaLQvZuNgfWAMqu/gIqnrwiZttBF/hkyYrkabgZD3XGY6DlF7wkNF7jVwKnLRzl88Sq9AByeUZw
{'Server': 'nginx', 'Date': 'Mon, 12 Sep 2022 12:19:51 GMT', 'Content-Type': 'text/html; charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Accept-Encoding', 'Strict-Transport-Security': 'max-age=31536000', 'Access-Control-Allow-Origin': '', 'Content-Encoding': 'gzip'}
200
[]
进程已结束,退出代码0
我的解答思路和尝试过的方法:
requests.get()是默认允许重定向的
在源代码里找到图片的原始url,检查后发现经过连续两次重定向才到达图片的最后地址,我用requests库的r=requests.get(url) 再 print(r.url)却只得到第一次重定向后的新url,没有进行第二次重定向
对新url单独请求了一次,也没用,状态码是200不是302或301