使用Python刮擦javascript生成的数据

时间:2012-04-07 06:56:36

标签: javascript python screen-scraping web-scraping

我想使用Python抓取以下网址的一些数据。 http://www.hankyung.com/stockplus/main.php?module=stock&mode=stock_analysis_infomation&itemcode=078340

这是关于公司信息的摘要。

我想要刮的东西没有显示在第一页上。 通过单击名为“재무제표”的选项卡,您可以访问财务报表。点击名为“현금흐름표”的标签,即可访问“现金流量”。

我想刮掉“现金流”数据。

但是,现金流量数据是通过网址上的javascript生成的。 以下链接是隐藏的网址http://stock.kisline.com/compinfo/financial/main.action?vhead=N&vfoot=N&vstay=&omit=&vwidth=

通过向此网址提交一些选项值和Cookie来生成现金流量数据。

如您所知,第一个链接中的itemcode = 078340表示股票代码,我想收集多达1680个股票的现金流量数据。我想让它成为一个循环结构。

有没有很好的方法来刮取现金流量数据? 我试过scrapy但是scrapy很难处理我正在使用的另一个刮擦代码。

2 个答案:

答案 0 :(得分:9)

还有dryscape(由我编写的库,所以建议有点偏颇,显然:)它使用基于Webkit的快速内存浏览器来导航。它也理解Javascript,但比Selenium更轻量级。

答案 1 :(得分:1)

如果您需要浏览使用AJAX更新的页面内容并且您不在此AJAX界面的控制之下,我将使用Selenium浏览器automator执行此任务:

http://code.google.com/p/selenium/

  • Selenium有Python绑定

  • 它启动了一个真实的浏览器实例,因此它可以用你自己的眼睛100%做同样的事情

  • 通过Selenium API更新AJAX后获取HTML文档内容

  • 使用lxml + xpath / CSS选择器从文档中解析出相关部分