使用python解析url时出错

时间:2012-05-01 10:46:10

标签: python urllib2 urllib

我正在使用python处理网址 如果我点击网址,我就能获得excel文件 但如果我运行以下代码,它会给我奇怪的输出。

>>> import urllib2
>>> urllib2.urlopen('http://intranet.stats.gov.my/trade/download.php?id=4&var=2012/2012%20MALAYSIA%27S%20EXPORTS%20BY%20ECONOMIC%20GROUPING.xls').read()

输出:

"<script language=javascript>window.location='2012/2012 MALAYSIA\\'S EXPORTS BY ECONOMIC GROUPING.xls'</script>"

为什么它无法用urllib2阅读内容?

2 个答案:

答案 0 :(得分:1)

使用http监听器(甚至谷歌Chrome开发者工具)看看,当你到达页面时,使用javascript进行重定向。

您需要访问初始网址,解析结果并再次获取实际网址。

答案 1 :(得分:1)

<{3}}中的@Kai似乎找到了使用模块Selenium

的javascript重定向的答案
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