【问题标题】:How can I scrape the current webpage with php/javascript?如何使用 php/javascript 抓取当前网页?
【发布时间】:2025-11-26 18:40:01
【问题描述】:

我制作了以下网页来生成交互式待办事项列表:http://robert-kent.com/todo/todo.php

基本上,用户粘贴一个编号的待办事项列表,每个任务都放置到它自己的具有唯一 ID 的 div 中。用户可以在任务中添加注释(使用 javascript 完成),并且可以在任务完成后单击绿色对勾将其隐藏。

我想添加一个导出按钮,该按钮将生成一个报告,说明哪些任务已完成,哪些未完成,以及用户输入的注释。经过一番搜索,我明白我想要做的是刮页面,但我对最好的方法一无所知。我在 Google 上找到的许多文章和教程都涉及抓取其他网站,并没有真正解释如何遍历页面上的每个 div。

完整来源:http://pastebin.com/r7V3P5jK

有什么建议吗?

【问题讨论】:

  • 这不是您自己的网站吗?那你为什么要反击呢?为什么不使用源数据生成报告,就像生成 HTML 一样?
  • 它只在我的网站上,所以你们可以看到它。此外,注释是动态生成的,我无法知道第一次生成 HTML 时哪些任务已完成

标签: php javascript webpage scrape


【解决方案1】:

不幸的是,您描述的提供“导出”功能的方法是完全错误的。您的页面应使用表明需要“导出”的参数提交回服务器。然后,服务器应将“Content-Disposition”标头设置为 attachment; filename="export.txt"(或您想要的文件名)。

【讨论】:

    【解决方案2】:

    如果有一个 div 包含您要导出的内容,您可以简单地使用 innerHTML 属性来导出 HTML 代码。例如,假设 div 的 id 为“notes”:

    var notes = document.getElementById('notes');
    alert(notes.innerHTML);
    

    现在,如何让用户将实际的 HTML 保存在文件中?您需要将其发送到服务器上的 CGI 或类似的服务器,该服务器发送回具有以下标头的内容:

    Content-Disposition:附件;文件名="export.txt"

    或者,您必须使用本页说明的方法:http://objectmix.com/javascript/314946-possible-generate-text-files-javascript.html。仅供参考:页面上解释的方法不跨浏览器兼容。

    【讨论】: