如何从python中多次重定向网址中获取目标网址?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从python中多次重定向网址中获取目标网址?相关的知识,希望对你有一定的参考价值。

我正在尝试制作网络刮板。我想从查询URL获取目标URL。但是它重定向了很多次。

这是我的网址:

https://data.jw-api.org/mediator/finder?lang=INS&item=pub-jwb_201812_16_VIDEO

目标网址应为:

https://www.jw.org/ins/library/videos/#ins/mediaitems/VODOrgLegal/pub-jwb_201812_16_VIDEO

但是我将https://www.jw.org/ins/library/videos/?item=pub-jwb_201812_16_VIDEO&appLanguage=INS作为重定向的URL。

我尝试过此代码:

import requests

url = 'https://data.jw-api.org/mediator/finder?lang=INS&item=pub-jwb_201812_16_VIDEO'

s = requests.get(url)
print(s.url)
答案

使用javascript进行重定向

这不是服务器重定向,因此请求没有跟随它。

您可以使用Selenium获取URL

from selenium import webdriver
import time


browser = webdriver.Chrome()
url = 'https://data.jw-api.org/mediator/finder?lang=INS&item=pub-jwb_201812_16_VIDEO'
browser.get(url)
time.sleep(5)
print (browser.current_url)
browser.quit()

输出

https://www.jw.org/ins/library/videos/#ins/mediaitems/VODOrgLegal/pub-jwb_201812_16_VIDEO

[如果您要构建刮板,我建议您检查scrapy-splash https://github.com/scrapy-plugins/scrapy-splash或request-html https://github.com/psf/requests-html

以上是关于如何从python中多次重定向网址中获取目标网址?的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中获取引荐网址

重定向到新网址,但从历史记录中删除以前的网址

如何在codeigniter中获取上一页网址

如何使用js 重定向到原来的页面

在Chrome中,最终使用带有正则表达式的重定向扩展程序,如何将所有facebook.com网址重定向到mbasic.facebook.com URLS

Bixby:想重定向到网页浏览器的网址上的按钮点击