【发布时间】:2011-11-06 14:39:16
【问题描述】:
我想从http://www.youtube-mp3.org/ 下载几首歌曲。我正在使用 urllib2 和 BeautifulSoup。
问题是,当我 urllib2 打开插入了我的视频 ID http://www.youtube-mp3.org/?c#v=lV7r8PiuecQ 的网站时,我得到了该网站,但他们对此很棘手,并在初始页面加载后使用一些 js ajax 内容加载信息。因此,当我尝试抓取下载链接的 url 时,实际上并没有出现在页面上,因为它尚未加载。
任何人都知道我可以如何在我的 python 脚本中触发这个 js 加载器,或者什么?
在我想要的内容加载到其中之前,这是相关的空 html。
<div id="link_box" style="display:none">
<div id="link_box_title" style="font-weight:bold; text-decoration:underline">
</div>
<div class="row">
<div id="link_box_bb_code_title" style="font-weight:bold">
</div>
<input type="text" id="BBCodeLink" onclick="sAll(this)" />
</div>
<div class="row">
<div id="link_box_html_code_title" style="font-weight:bold">
</div>
<input type="text" id="HTMLLink" onclick="sAll(this)" />
</div>
<div class="row">
<div id="link_box_direct_code_title" style="font-weight:bold">
</div>
<input type="text" id="DirectLink" onclick="sAll(this)" />
</div>
</div>
<div id="v-ads">
</div>
<div id="dl_link">
</div>
<div id="progress">
</div>
<div id="loader">
<img src="ajax-loader-b.gif" alt="loading.." width="16" height="11" />
</div>
</div>
<div class="clear">
</div>
</div>
【问题讨论】:
-
看起来我们需要 youtube-mp3-scraper.org :一个抓取 youtube-mp3 的页面,然后再抓取 youtube ;)
-
嗯,因为我在 Mac 上,也许我可以使用 Automator 来浏览 youtube-mp3 上的 URL 列表,然后用实际的浏览器一一下载......?不过,我更愿意留在 Python 中。
-
Beautiful Soap 是处理键盘细菌最好的python库。
标签: python youtube urllib2 scrape