1

我正在使用 python 处理一个 url。
如果我单击 url,我可以获得 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 读取内容?

4

2 回答 2

1

@Kai in this question似乎找到了使用模块的javascript重定向的答案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
于 2012-05-01T11:01:24.320 回答
1

使用 http 侦听器(甚至 Google Chrome 开发人员工具)查看一下,当您到达页面时,会使用 javascript 进行重定向。

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

于 2012-05-01T10:53:07.353 回答