【问题标题】:How to Get a redirected URL如何获取重定向的 URL
【发布时间】:2018-05-02 13:51:50
【问题描述】:

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

但我遇到的问题是,如果在我的应用上点击了抓取的项目,它首先会获得财务收益,然后才会转到新闻的主要来源

那是他们可能从 BBC 获得的新的金融果汁,而我的scrapy 接收了该项目,一旦您点击该网址,它首先会在进入 BBC 之前获得金融果汁

你认为我能做什么,欢迎你的建议。

【问题讨论】:

  • 你的问题还是有点不清楚,到底是什么问题?
  • 我希望能够立即获得重定向到的链接,而不是在访问实际新闻来源之前先访问金融资源
  • 如果您在新闻来源出现之前检查财务汁液,您会注意到,在它最终带来消息来源之前,财务汁液已经加载。

标签: python web web-scraping


【解决方案1】:

分享其中一个抓取的 URL,但我认为问题在于财务汁液不是为您提供直接 URL,而是一个带有重定向的 URL。所以基本上这是首页上的链接

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()

【讨论】:

  • 如何实现
  • 在我之前回答的末尾添加了内容以帮助他人。如果有帮助,请参阅原始答案并将其标记为“已接受的答案”。谢谢。
  • 这是由脚本重定向的。没有浏览器是无法获取的。
  • 如果是这样,那么我们需要使用 selenium。上面添加了说明。
  • 请检查上面添加的代码,它可以重新用于您使用(您需要提供您的 chromedriver 路径。在抓取时您需要添加延迟以使 js 重定向工作。
猜你喜欢
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 2016-12-22
  • 2016-12-11
  • 2013-09-07
  • 1970-01-01
相关资源
最近更新 更多