【问题标题】:Scrape web site generated by JavascriptJavascript生成的抓取网站
【发布时间】:2011-03-05 21:25:42
【问题描述】:

我认为这是一个真正的挑战!

我为我当地的足球联赛 www.rdyfl.co.uk 编写了一个网站,并包含来自 F.A 的全职系统的 javascript 代码 sn-ps,我们在该系统中生成我们的赛程,在表格中链接赛程最近的结果等.

对于我想添加到网站的另一个功能,我需要为每个年龄组和部门抓取“即将到来的比赛”,但是当我检查来源时,我遇到了两个问题。

  1. fixtures 内容是由 javascript 生成的,因此我需要查看生成的源代码,而不仅仅是源代码。

  2. 当我使用 Firefox 查看生成的源代码时,团队名称实际上是进一步的 javascript 链接,而不是名称本身。

我基本上想以某种方式定期下载固定装置,然后写入 mysql 数据库?

我已经询问了 F.A.,他们没有更多可用的选项来访问数据?

以前从未编写过抓取代码,谁能指出一个简单的解决方案,或者有人喜欢这个挑战吗?

【问题讨论】:

  • 在页面加载时使用 Firebug 或 Dragonfly 检查网络流量。其中一个请求将是 HTML-AJAX 加载或被拉入的 JSON 数据。找出它是什么,数据是如何表示的,并复制用于提取数据的逻辑。 (好问题,但其他方面的答案太不具体了。)

标签: php javascript scrape


【解决方案1】:

这个问题很久以前就被问过了,但我注意到它今天很活跃?。

您应该能够使用无头浏览器(例如 Puppeteer)抓取网站。使用 Puppeteer,您可以访问 URL 并执行 JavaScript 或与网站交互,就像使用普通浏览器一样。解析输出 DOM 并存储它应该相对简单。

有很多 articles 使用 Puppeteer 讨论这个主题。

【讨论】:

    【解决方案2】:

    OutWit Hub 的最新版本在动态内容方面做得相当不错。由 outwit 抓取以提取链接、图像、文档和表格和文本的源是更新后的 DOM。你当然可以使用这些来获取你需要的东西。 自定义抓取工具在 1.0.3 版中仍适用于静态源,但 1.1.x 版(仍处于测试阶段)将提供静态源和动态修改的 DOM 之间的选择。

    【讨论】:

    • 哇,OutWit 给我留下了深刻的印象,它可以做我想做的事,虽然我真的很想将脚本上传到我的服务器,然后每周自动将抓取的数据发送到 mysql 数据库?
    【解决方案3】:

    抓取 Javascript 生成的内容具有挑战性。 AFAIK,您将需要使用 AJAX 执行此操作。希望内容有一些你可以用 jQuery 或至少一些 id 抓取的 css。你有可以抓取的 id 或类吗?

    【讨论】:

    • AJAX? jQuery?真的?!这是一个特定的站点。无需启动浏览器来解析其中的数据,您只需对 JS 进行逆向工程并从中提取数据(应采用一致的格式)。至于 CSS,视觉渲染几乎永远不会相关。
    • 当我正在编写显示代码片段结果的网站时,我可以将所需部分包含在一个名为“fixtures”的 div 中?
    猜你喜欢
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2014-08-08
    • 2012-09-19
    相关资源
    最近更新 更多