获取网站上javascript重定向的最终目的地

时间:2011-11-08 15:58:31

标签: python urllib2

我用python解析一个网站。他们使用了很多重定向,他们通过调用javascript函数来完成它们。

因此,当我只使用urllib来解析网站时,它对我没有帮助,因为我无法在返回的html代码中找到目标网址。

有没有办法访问DOM并从我的python代码中调用正确的javascript函数?

我需要的只是网址,重定向带我。

2 个答案:

答案 0 :(得分:9)

我看了Selenium。如果您没有运行纯脚本(意味着您没有显示器并且无法启动“普通”浏览器),解决方案实际上非常简单:

from selenium import webdriver

driver = webdriver.Firefox()
link = "http://yourlink.com"
driver.get(link)

#this waits for the new page to load
while(link == driver.current_url):
  time.sleep(1)

redirected_url = driver.current_url

对于我的用例,这已经足够了。 Selenium还可以与表单交互并向网站发送击键。

答案 1 :(得分:-1)

对我来说听起来不是很有趣,但每个javascript函数都是一个对象,所以你只需要读取函数而不是调用它,也许URL就在其中。否则,该函数可能会调用另一个函数,然后你必须将其递归...再次,听起来不是很有趣,但可能是可行的。