【问题标题】:Scraping data from DataTables从 DataTables 中抓取数据
【发布时间】:2015-05-13 20:11:56
【问题描述】:

我的任务是从Wall Street Journal 抓取一些数据。 选择一个城市后,我得到了一张漂亮的、可排序的、分页的表格;但是,在下载 HTML 源代码后,我找不到任何数据。

一些侦探工作显示数据正在由DataTables 显示,但我无法召唤脚本数据。

如何获得对 DataTables 数据的脚本访问权限?

【问题讨论】:

标签: jquery datatable jquery-datatables


【解决方案1】:

好像提交按钮调用了一个 AJAX 请求来检索数据,这意味着数据不包含在页面的源中,您可以通过浏览器实用程序跟踪网络。顺便说一句,我发现正在向this url 发出 AJAX 请求,其中包含一些定义其搜索条件的参数,并且在请求此 url 后,返回的响应以 JSON 格式出现,这非常容易解析,你是幸运的是,该服务不需要身份验证方法,这意味着您可以下载所有可用数据。 Example url,玩得开心:)

【讨论】:

    【解决方案2】:

    您可以尝试以下 curl 调用的变体。如果你不确定从哪里开始,最好的办法是在你最喜欢的浏览器中打开你的开发者控制台,并在你输入数据时观察网络部分。在我看来,很明显他们正在使用各种数据源 - 用于地图、医生列表、每个内容。他们有一个相当复杂的小应用程序。

    curl 'http://projects.wsj.com/medicarebilling/js/doc-cards.json' -H 'Pragma: no-cache' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: http://projects.wsj.com/medicarebilling/' -H 'X-Requested-With: XMLHttpRequest' -H 'Cookie: __gads=ID=646810c03a66f80b:T=1427824722:S=ALNI_MbI1faJHjFHYyBE5Rc3RQEAACeljg; DJCOOKIE=ORC%3Dna%2Cus%7C%7CFCFGOOGLE%3D0%7C%7CFCFEXPGOOGLE%3D1431107109182; wsjregion=na%2Cus; utag_main=v_id:014c70fc41b60002799e4a2c78f90d078006007000fb8$_sn:3$_ss:1$_st:1431022512625$_pn:1%3Bexp-session$ses_id:1431020712625%3Bexp-session; s_fid=2A4A81015DE138F0-0436DAF9EC0F16F9; bkuuid=pjKMOz6q99OAYVkD; cX_P=i2xkpuyp35cvld6r; s_vnum=1432229868915%26vn%3D2; rsi_ct=2015_5_13:2; s_cc=true; s_invisit=true; gpv_pn=WSJ_infogrfx_interactive_MEDDATA1214_Medicare%20Unmasked%3A%20Behind%20the%20Numbers; s_sq=%5B%5BB%5D%5D' -H 'Connection: keep-alive' -H 'Cache-Control: no-cache' --compressed
    

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多