Python2.7:获取网站的html,href变为" javascript:void(0)"

时间:2015-04-04 16:23:40

标签: javascript python html python-2.7

我很抱歉,如果这是重复但我搜索了一下,什么都没发现,也许我只是不知道要搜索什么。

我认为问题会告诉你一切。

我使用Python2.7来获取网站的html。 之后我想存储一些关于该网站的数据(例如链接等)并下载该网站上的一些文件(使用python自动化)。

现在我遇到了问题,我要下载的其中一个链接有值:“javascript:void(0)”

这是我的代码:

import urllib2
response = urllib2.urlopen('http://www.japanesepod101.com/2006/01/16/survival-phrases-5-taxi/')
html = response.read()
f = open("Workfile", "w");
f.write(html)

我不想详细介绍,但在观看本网站的HTML代码时,我有这个元素:

<a class="media-download" download="" data-trackme="downloadaudio,33" href="http://media.libsyn.com/media/japanesepod101/029_S5_011606_jpod101.mp3" data-mode="audio">Download MP3<span class="download-tooltip" style="display: none;"><span class="corner"></span>Right Click &amp; 'Save As'</span></a>

在我的文件中,该元素是这样的:

<a class="media-download" data-trackme="downloadaudio,33" href="javascript:void(0)" data-mode="audio">Download MP3</a>

如何获取文件中的链接?

对于初学者(我)与python&amp;网站看起来没有调用javascript函数(因为它没有在浏览器中打开?),是这样吗?

1 个答案:

答案 0 :(得分:3)

您可以使用selenium来帮助加载javascript函数,然后为您提供最终的htmlpage

安装selenium

pip install selenium

这是解决方案。

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('yoururl')
htmlpage = driver.page_source
outputfile = open('workfile','w')
outputfile.write(htmlpage)
outputfile.close()
driver.close()