如何获取重定向的URL

时间:2017-11-19 03:39:50

标签: python web web-scraping

大家好我想解决这个问题而且我真的不知道该怎么做。我抓取了这个网站https://www.financialjuice.com/home并将其保存到我的数据库中,并且确实成功了。

但我遇到的问题是,如果在我的应用程序上点击了一个被删除的项目,它首先获得财务果汁,然后再转到新闻的主要来源

那是财务上的果汁,他们可能会从BBC得到一个新的,我的scrapy接收该项目,一旦你点击网址,它首先获得财务果汁,然后去BBC

您认为我能做什么,欢迎您提出建议。

2 个答案:

答案 0 :(得分:0)

在你的情况下,重定向是通过javascript发生的。你需要一个浏览器。

如果您想要实用,请使用:

Selenium

phantomjs

答案 1 :(得分:-1)

分享其中一个已删除的网址,但我认为问题在于,财务果汁不是直接网址,而是重定向网址。所以基本上这是头版上的链接

https://www.financialjuice.com/News/3772381/A-week-end-of-decision-for-Germany.aspx

加载rthen重定向到

http://www.forexlive.com/news/!/a-week-end-of-decision-for-germany-20171118

帮助他们跟踪从网站外部访问的链接(社交媒体共享等),并完全阻止您所做的事情。

您需要运行一个脚本来访问该链接,然后在上次重定向后获取该URL。

例如使用urllib2。 geturl为您提供打开对象的最终URL。

finalurl = urllib2.urlopen(intialurl, None, 1).geturl()

如果重定向是使用脚本,那么您需要使用Selenium。 See here这是一个很好的例子。我为你修改了下面的代码,效果很好

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
chromepath='/usr/bin/chromedriver' #//change this to your chromedriver path
driver = webdriver.Chrome(chromepath)
driver.get('https://www.financialjuice.com/News/3772381/A-week-end-of-decision-for-Germany.aspx')


time.sleep(10)
print(driver.current_url)

driver.quit()