我正在尝试制作网络刮板。我想从查询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