【发布时间】:2018-10-23 19:44:43
【问题描述】:
我正在为一个大学项目抓取 steamdb,在那里我能够使用 BeatifulSoup 和 urllib 获得几乎所有东西,但有一个东西我无法开始工作,因为没有指向它的链接。
有这些图表https://steamdb.info/app/570/graphs/,当您单击图表右上角的下载图标并选择任何一个下载选项时,您可以下载文件,但在检查元素时标签信息中没有链接。
我发现有一些 onclick 事件侦听器附加到那些下载 div,并将这些函数追踪到这个 js https://steamdb.info/static/js/vendor/highstock.20180826.js 和这个 js 如果你搜索“highcharts-menu-item”(这是类那些下载的 div 的)你得到正好 1 匹配。但我无法弄清楚该功能是如何产生下载项目的。那么任何人都可以解释下载魔法是如何发生的。
【问题讨论】:
-
那段代码被缩小了,阅读和理解起来非常困难。
-
HighCharts的库动态构建图形并在浏览器内创建临时图像 -- 没有与相关联的 物理 文件那...您将需要能够有效地“运行” JavaScript 以获取 HighCharts 图表。 -
@Barmar 你可以使用这个browserling.com/tools/js-prettify 使代码可读。
-
@TubbyStubby 缩进很好,用无意义的变量名仍然无法理解。
-
@TubbyStubby -- 安装 HighCharts 后,我直接从
php到DB使用 CURL 语句,然后渲染页面 -- 真的,如果他们像我一样这样做那么不,您无法分辨他们的数据“来自”哪里——您可以使用开发人员工具中的“网络”选项卡,希望他们正在进行具有 JSON 或其他内容的 AJAX 调用有用的你可以利用——否则你将被困在解析/运行 JS 本身。
标签: javascript web-scraping beautifulsoup urllib