我想解析一个简单的网站,并从该网站上抓取信息.
我曾经用DocumentBuilderFactory解析XML文件,我试图对html文件做同样的事情,但它总是陷入无限循环.
    URL url = new URL("http://www.deneme.com");
    URLConnection uc = url.openConnection();
    InputStreamReader input = new InputStreamReader(uc.getInputStream());
    BufferedReader in = new BufferedReader(input);
    String inputLine;
     FileWriter outFile = new FileWriter("orhancan");
     PrintWriter out = new PrintWriter(outFile);
    while ((inputLine = in.readLine()) != null) {
        out.println(inputLine);
    }
    in.close();
    out.close();
    File fXmlFile = new File("orhancan");
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(fXmlFile);
    NodeList prelist = doc.getElementsByTagName("body");
    System.out.println(prelist.getLength());
什么是问题?或者有没有更简单的方法从网站上抓取给定html标签的数据?
哪些HTML解析器具有以下功能:
你认为哪种解析器更好?
谢谢.
所以这就是挑战......我需要在野外随机网页中创建干净的HTML.我的目标是在一个页面中读取并将其传递给一个库,这将反过来给我一个完美的HTML格式.
听起来不那么厉害吧?毕竟,市场上的每个浏览器都能有效地应对格式错误的HTML的挑战,并将其转化为几乎每个页面加载都可渲染的东西.每个都有自己的略微特定的清理内容的算法(对于HTML <5来说是这样),但是他们倾向于非常好地捕捉我想要作为作者意图的内容.那么,为什么我不能为这项任务找到一个好的java库呢?
有一点需要提及的是,我对将HTML解析为XML并不感兴趣.我发现像NekoHTML,TagSoup,HtmlCleaner和JTidy这样的库(仅举几例)更侧重于解决将HTML转换为有效XML的问题,并且在此过程中,他们忽略了如何糟糕 - 格式化文档应重新构建.使用令人讨厌的HTML,他们经常不会捕获作者的意图并吐出与原始源完全不同的文档.对于这个项目,两个文件的呈现方式同样至关重要.
我非常喜欢Jericho HTML,但它似乎并不是这项工作的理想人选...至少在没有我付出很多努力的情况下.此外,Native依赖项是不行的,因此mozilla解析器已经完成.
任何人都可以帮助我寻找完美的HTML解析器吗?提前致谢!
我想做一些屏幕抓取,理想情况下使用CSS选择器而不是XPath.是否有类似于Ruby或Python中的库?
我正在使用jsoup,整理一些html非常好,但我有一个无效的html如下:
<p>The recurrence, in close succession <ul><li>list item 1</li><li>list item 2</li></ul> second part of thisssss
我想得到的是:
<p>The recurrence, in close succession </p><ul><li>list item 1</li><li>list item 2</li></ul> <p>second part of thisssss</p>
那么jsoup能够整理html并返回这个输出吗?
谢谢
我想解析这个链接:
<a href="http://www.google.fr">Link to google</a>
为了获得两个结果:
Link = "http://www.google.fr"
LinkName = "Link to google"
我真的不知道怎么做,Java中是否有一个库可以解决这个问题?
提前致谢,
可能重复:
是否有用Java实现的验证HTML解析器?
嗨,
是否有任何API使用java解析HTML文本.
所有功能都应采用Objects的格式
例如,在下面的文本中我想解析HTML文件,解析器应该返回标签列表,属性..
<HTML>
<BODY>
    <INPUT TYPE="text" value="100">
</BODY>
</HTML>
谢谢
假设我有一个像这样的字符串" neverMind<b>What is up</b>neverMind",我想用JAVA取出使用正则表达式的内容.有人告诉我,使用匹配器将是最好的.谁能告诉我如何使用Matcher做到这一点?
其他解决方案也欢迎!谢谢!
什么是Java相当于:
def filt_out(s):
        return re.sub('<a href="(.*)">', '', s.replace('<br/>', '\n').replace('"', '\"').replace('</a>', ''))