【问题标题】:How to extract source html from webpage?如何从网页中提取源 html?
【发布时间】:2012-06-07 03:18:06
【问题描述】:

我正在尝试提取此页面的html源,http://www.fxstreet.com/rates-charts/currency-rates/

我想要将 chrome 中的页面保存为 .html 文件时看到的内容。

我尝试在 java 中执行此操作,使用 bufferedreader,然后使用 jsoup。我也尝试在 python 中执行此操作,但是我不断收到以下消息:

“此站点需要启用 JavaScript 和 Cookie。请更改您的浏览器设置或升级您的浏览器。”

最终目标是提取主表中的值。

【问题讨论】:

  • 好像在Flash什么的。
  • 至强是对的。在启用 JS 的情况下,它适用于 HtmlUnit。

标签: java python html-parsing jsoup


【解决方案1】:

尝试使用HtmlUnit 并设置setJavascriptEnabled(true)

另请参阅:thisthis

JSoup 不是无头浏览器来执行 Javascript,所以你必须选择其他库来获取页面,然后你可以使用 JSoup 来解析它。

【讨论】:

    【解决方案2】:

    只需要提取主表就可以使用Jsoup轻松完成

    这是一个从页面主表中获取所有内容的方法

    public void parse(){
            try{
    
            Document doc = Jsoup.connect("http://www.fxstreet.com/rates-charts/currency-rates/").get();
            Element content = doc.getElementById("ddlPairsChoose");
            Elements table = doc.getElementsByClass("applet-content");      
    
            System.out.print(table);
    
            }
    
            catch(Exception e){
    
                System.out.print("error --> " + e);
            }       
        }
    

    它打印出页面上的表格

    【讨论】:

    • 也是这样,因为如果使用连接机制,Jsoup 可以很好地模拟浏览器。如果这也不起作用,请运行本地 http 代理并手动浏览站点以记录通信。也许浏览器会发送额外的 AJAX 后台请求以过滤掉机器人,或者该站点需要不同的用户代理(然后检查:stackoverflow.com/questions/6581655/…
    猜你喜欢
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多