【问题标题】:Reading the page source inside <form> of a web page读取网页 <form> 内的页面源
【发布时间】:2012-06-16 07:22:46
【问题描述】:

谁能帮我阅读标签内的页面源代码。

我已经尝试过使用 htmlUnit 和 jsoup...但它只返回里面的内容和标签。 任何回复都非常感谢。

【问题讨论】:

    标签: java html-parsing jsoup htmlunit


    【解决方案1】:

    使用element.html() 读取HTML 而不是JSoup 中的标签本身的包含

    例如:

    String html = "<p>An </p><form action="SOMESERVLET"><b>example</b></form> ";
    Document doc = Jsoup.parse(html);
    String htmlContent = doc.select("form").first().html();
    

    根据你的情况

    Document doc = Jsoup.connect("example.com").get(); 
    Iterator<Element> itr = doc.select("form").iterator()
    while(itr.hasNext()){ 
       Element element = itr.next();
       System.out.println(element.html());
    }
    

    【讨论】:

    • 如果有多个表单标签,则只返回一个表单标签。
    • doc.select(...) 返回 Elements 您可以对其进行迭代以从 document 获取多个表单
    • &lt;form&gt; href='http://example.com/'&gt; 绝对是格式错误的 HTML 语法。我编辑了你的帖子以修复它。
    • Document doc = Jsoup.connect("example.com").timeout(0).get(); System.out.println(doc.toString()); 我使用上面的代码来获取doc返回的所有内容。但是有是输出和视图源之间的巨大差异(当我右键单击并查看视图源时)。
    • @Jigar:谢谢,从你的代码中,我知道了一些细节。问题是,页面有一个按钮,所以当我点击那个按钮时,会出现正确的页面。有什么方法可以从 JAVA 代码本身单击(事件)按钮。
    【解决方案2】:

    一步一步

    • 从url读取html到字符串
    • 找到&lt;form&gt;标签是start index
    • 找到&lt;/form&gt;标签它是last index,*如果这个标签不存在最后索引是长度 *
    • 只是substringstartend 索引

    这是一个简单的算法,但我认为有很多工具可以帮助你!!!

    【讨论】:

    • 谢谢。我试过了,问题出在这里。该页面由许多表单标签组成,但只返回一个表单标签。另外, 标签内的内容也不会返回。
    • 只有 firstIndexOF 和 lastIndex 方法可以帮助您返回第一个和最后一个表单标签之间的所有内容
    • 文档 doc = Jsoup.connect("example.com").timeout(0).get(); System.out.println(doc.toString());我使用上面的代码来获取文档返回的所有内容。但是输出和视图源之间存在巨大差异(当我右键单击并查看视图源时)。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签