【问题标题】:getting a webpage source code without actually accessing a page在不实际访问页面的情况下获取网页源代码
【发布时间】:2011-08-12 11:13:35
【问题描述】:

有很多网页只是简单地运行一个脚本而没有任何材料。 有没有在没有实际访问页面的情况下看到页面源,因为它只是重定向你?

使用 html 解析器可以做到这一点吗?我正在使用 simpleHTMLdom 来解析页面?

【问题讨论】:

  • 你想从重定向页面查看生成的 HTML 吗?
  • 没有。你能不看就读到东西吗?

标签: php javascript html-parsing


【解决方案1】:

在 firefox 中,您可以使用 view-source 协议仅查看站点的源代码,而无需实际呈现它或在其上执行 JavaScript。

示例:view-source:http://stackoverflow.com/q/5781021/298479(复制到地址栏)

【讨论】:

  • 哈哈,有趣的是有多少人实际复制了该链接 - “您已获得“播音员”徽章,因为您无需实际访问页面即可获取网页源代码。”。让我现在等待银/金版本:p
【解决方案2】:

如果您需要快速而肮脏的修复,您可以禁用 JavaScript 和 Meta 重定向(Internet Explorer 可以在 Internet 选项对话框中禁用这些。Firefox 可以使用 NoScript 插件来获得相同的效果。)

这不会进行任何服务器端重定向,但会阻止客户端重定向并允许您查看文档的 HTML 源代码。

【讨论】:

    【解决方案3】:

    如果您尝试对通过执行 JavaScript 构建 90% 以上内容/视图的页面内容进行 HTML 抓取,您将遇到问题,除非您渲染到屏幕(隐藏)然后抓取该内容。否则你最终会刮掉一些对你没有好处的脚本标签。

    例如如果我尝试抓取我的 Gmail 收件箱页面,它是一个空的 HTML 页面,只有几个分散的脚本标签(可能是几乎所有基于 GWT 的应用程序的典型)

    您正在抓取的页面/站点是否有 API?如果没有,是否值得询问他们是否有一个正在开发中?

    通常,这些类型的工具在“窃取”信息和“共享”信息之间运行良好,因此您可能需要小心行事。

    【讨论】:

    • 我不知道这是我在大学里寻找漏洞竞赛的一部分。我发现我正在从这一页重定向。我觉得那个重定向页面上有什么东西。
    【解决方案4】:

    如果您可以访问命令行 linux shell,wget 或 lynx 也可以正常工作:

    wget http://myurl lynx -dump http://myurl

    【讨论】:

      【解决方案5】:

      如果您使用的是基于 *nix 的操作系统,请尝试从终端使用 curl。

      卷曲http://www.google.com

      【讨论】:

        【解决方案6】:

        获取页面HTML源的唯一方法是向Web服务器发送HTTP请求并接收响应,相当于访问该页面。

        【讨论】:

          【解决方案7】:

          是的,简单的 HTML 解析将为您提供客户端 (Javascript) 代码。

          当通过浏览器访问这些页面时,浏览器会运行代码并重定向它,但是当您使用爬虫或您自己的程序访问它时,代码不会运行并且可以获取静态脚本。

          当然你不能访问服务器端(php)。这是不可能的。

          【讨论】:

          • 如果您不需要自动化,只需在浏览器(Firebug 或 Chrome 开发工具)中查看第一个 URL 的响应内容
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-05
          • 1970-01-01
          • 2016-07-02
          • 2013-12-03
          • 2013-11-26
          相关资源
          最近更新 更多