Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python抓取javascript生成的数据_Javascript_Python_Screen Scraping_Web Scraping - Fatal编程技术网

使用Python抓取javascript生成的数据

使用Python抓取javascript生成的数据,javascript,python,screen-scraping,web-scraping,Javascript,Python,Screen Scraping,Web Scraping,我想使用Python获取以下url的一些数据。 这是关于公司信息的摘要 我想刮的东西没有显示在第一页上。 通过单击名为“”的选项卡재무제표", 您可以访问财务报表。然后单击名为“”的选项卡현금흐름표', 您可以访问“现金流” 我想搜集“现金流”数据 但是,现金流数据是通过javascript跨url生成的。 以下链接是隐藏的url 现金流数据是通过向该url提交一些选项值和cookie生成的 正如您所看到的,第一个链接中的itemcode=078340表示股票代码,我希望收集现金流数据的股票多

我想使用Python获取以下url的一些数据。

这是关于公司信息的摘要

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

我想搜集“现金流”数据

但是,现金流数据是通过javascript跨url生成的。 以下链接是隐藏的url

现金流数据是通过向该url提交一些选项值和cookie生成的

正如您所看到的,第一个链接中的itemcode=078340表示股票代码,我希望收集现金流数据的股票多达1680只。我想把它做成一个循环结构

有没有好的方法来收集现金流数据?
我尝试了scrapy,但scrapy很难处理我正在使用的另一个刮码。

如果您需要替换使用AJAX更新的页面内容,并且您不受此AJAX界面的控制,我将使用Selenium browser automator执行此任务:

  • Selenium具有Python绑定

  • 它启动了一个真正的浏览器实例,因此它可以做和抓取100%与您亲眼看到的相同的事情

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

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


    • 还有一个(我写的一个库,所以这个建议显然有点偏颇:)使用基于内存浏览器的快速Webkit进行浏览。它也理解Javascript,但比Selenium轻得多。

      数据是由ajax从服务器提取的还是以某种方式存储在html中(如JS变量或
      数据-
      )?服务条款允许您这样做吗?Tadeck,数据是从服务器提取的。@luke14free这是一个报纸网站。而且数据对每个人都是免费开放的,即使你不必登录到useDo服务条款允许。。。什么???谁给了我一个飞跃。非常感谢。我要试试selenium。我能在最后用这个lxml+xpath部分替换jquery吗(并按照其余步骤操作)?selenium自带了自己的CSS选择器引擎(可能使用底层浏览器),因此您不再需要jquery或lxml了