【问题标题】:Getting web content - browser does not support frames获取网页内容 - 浏览器不支持框架
【发布时间】:2011-09-27 11:36:59
【问题描述】:

我有一段这样的代码:

webUrl = new URL(url);
reader = new BufferedReader(new InputStreamReader(webUrl.openStream()));

当我尝试获取某个页面的 html 内容时,我得到的响应是我的浏览器不支持框架。所以我没有得到页面的真实html。 有解决方法吗? 也许告诉程序注册为某个浏览器?

对我来说,只有获取 html 才是关键,然后我想解析它。

编辑:无法从浏览器中的 html 获取框架的 src。它隐藏在js中。

【问题讨论】:

    标签: java html parsing html-parsing


    【解决方案1】:

    “您不支持框架,我们没有在此处放置合理的替代内容”消息将位于 <noframes> 元素中。您需要访问适当的<frame> 元素,访问其src 属性,解析其中的URI,然后从那里获取数据。

    【讨论】:

    • 好吧,我不能在 iframe 标记中调整 src 属性。而且我需要的内容似乎在框架之外。 .. 如您所见这里什么都没有。我需要的内容在这段代码下面。
    • 想必它是由 JavaScript 设置的,所以你需要对 JS 进行逆向工程以找出它在做什么。
    【解决方案2】:

    您必须在 HTTP 请求中设置用户代理字符串,以便服务器认为您支持帧。我为此建议使用 HtmlClient 或 HttpClient 之类的东西。

    【讨论】:

      猜你喜欢
      • 2016-09-22
      • 2014-09-10
      • 2013-02-07
      • 2012-04-25
      • 2016-09-06
      • 2013-01-06
      • 1970-01-01
      • 2023-03-18
      • 2021-11-15
      相关资源
      最近更新 更多