如何确定文本文件下载的基础URL

时间:2011-02-20 22:47:51

标签: javascript python url web-scraping

在下面的页面上可以下载txt文件。 我对txt部分的第一个文件感兴趣。

如何获取网址。我可以拉它。我怎么得到没有的网址 包含python的java脚本。

今天它:volume.20110218.txt。

http://www.optionsclearing.com/webapps/trade-volume-download

2 个答案:

答案 0 :(得分:1)

你的问题有点模糊。听起来您想对urllib2BeautifulSoup模块做些什么。

使用urllib2函数从基本网址获取HTML,使用BeautifulSoup解析并使用目标(src属性的值)(第一个) TXT?)表中的锚标签打开另一个连接并拉出这些内容。然后打开本地文件(或子进程)并提供第二次获取的内容。

使用BeautifulSoup最棘手的部分是找到唯一标识要提取的内容部分的特征。现代HTML非常丑陋,并且通过用于生成它的各种工具和库往往会在其中嵌入大量无关垃圾。 (一个提示:单词" class"是一个Python保留关键字以及HTML中的公共属性。因此,您将发现最简单的通过" class"属性/模式通过将它们包装在字典中来配对到BeautifulSoup函数:{'class': some_pattern}而不是用于大多数其他参数的更常见的keyword=pattern形式。

要处理您可能想要阅读的JavaScript:

What's a good tool to screen-scrape with Javascript support?

听起来,目前最好的办法是将基于Java的HTMLUnit软件包设置为网关,然后编写Python连接并控制它。您也可以尝试Selenium来控制真实的浏览器会话,并通过进程间通信机制从中提取信息。

答案 1 :(得分:1)

该页面使用javascript链接提交隐藏表单以下载文件。表单隐藏字段似乎也由javascript填充。

似乎他们这样做是为了使自动下载更难完成。如果他们不介意自动下载,请向他们询问更简单的界面,否则,请不要尝试这样做。

更新:由Jeremiah评论,他们确实有一个批处理界面:

http://www.optionsclearing.com/market-data/batch-processing.jsp