Tag: jsoup

使用jsoup进行奇怪的编码行为

我用jsoup从不同页面的html源代码中提取一些信息。 其中大多数是UTF-8编码的。 其中一个是用ISO-8859-1编码的,这导致了一个奇怪的错误(在我的选择中)。 包含错误的页面是: http : //www.gudi.ch/armbanduhr-metall-wasserdicht-1280×960-megapixels-p-560.html 我用以下代码读取了所需的String: Document doc = Jsoup.connect(“http://www.gudi.ch/armbanduhr-metall-wasserdicht-1280×960-megapixels-p-560.html”).userAgent(“Mozilla”).get(); String title = doc.getElementsByClass(“products_name”).first().text(); 问题是字符串“HD Armbanduhr aus Metall 4GB Wasserdicht 1280X960 – 5百万像素”中的连字符。 像öäü这样的正常变音符号被正确读取。 只有这个单一字符,没有输出为“-” 出现问题。 我试图用out.outputSettings()。charset(“ISO-8859-1”)覆盖(正确设置)页面编码,但这也没有帮助。 接下来,我尝试使用Charset类更改字符串的编码,并手动更改为utf8和iso-8859-1。 也没有运气。 在使用jsoup解析html文档之后,有人提示我可以尝试获取正确的字符吗? 谢谢

打开与Jsoup的连接,获取状态代码并解析文档

我正在使用jsoup创建一个类,它将执行以下操作: 构造函数打开与url的连接。 我有一个方法,将检查页面的状态。 即200,404等 我有一个方法来解析页面并返回一个url列表。# 下面是我正在尝试做的粗略工作,而不是非常粗糙,因为我一直在尝试很多不同的事情 public class ParsePage { private String path; Connection.Response response = null; private ParsePage(String langLocale){ try { response = Jsoup.connect(path) .userAgent(“Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21”) .timeout(10000) .execute(); } catch (IOException e) { System.out.println(“io – “+e); } } public int getSitemapStatus(){ int statusCode = response.statusCode(); return […]

使用java解析robot.txt并确定是否允许使用url

我目前在应用程序中使用jsoup来解析和分析网页。但我想确保我遵守robot.txt规则并且只访问允许的页面。 我很确定jsoup不是为此制作的,而是关于网页抓取和解析。 所以我计划让函数/模块读取域/站点的robot.txt,并确定我是否允许访问的URL。 我做了一些研究,发现了以下内容。但是我不确定这些,所以如果有人做同样的项目,其中涉及到robot.txt解析请分享你的想法和想法会很棒。 http://sourceforge.net/projects/jrobotx/ https://code.google.com/p/crawler-commons/ http://code.google.com/p/crowl/source/browse/trunk/Crow/src/org/crow/base/Robotstxt.java?r=12

使用jsoup解析html并删除标记块

我想删除标签之间的所有内容。 输入的示例可以是 输入: start delete from below first div having this class waste second div having this class waste delete till above this will also remain end 输出将是: start delete from below delete till above this will also remain end 基本上,我必须删除第一次出现 的整个块 谢谢,

使用java代码获取完整的网页

我想实现一个java方法,它将URL作为输入并存储整个网页,包括css,images,js(所有相关资源)在我的磁盘上。 我使用Jsoup html解析器来获取html页面。 现在我想要实现的唯一选择是使用jsoup获取页面,现在解析html内容并将相对路径转换为绝对路径,然后再生成javascript,图像等的get请求并将它们保存在磁盘上。 我还读到了关于html清理器,htmlunit解析器但我认为在所有这些情况下我必须解析html内容以获取图像,css和javascript文件。 我是否正确的任何建议。 或者有没有简单的方法来完成这项任务?

JSoup使用未关闭的标记解析无效的HTML

使用JSoup包含最后一个版本1.7.2,有一个错误解析带有未关闭标记的 无效 HTML。 例: String tmp = “LinkError link”; Jsoup.parse(tmp); 生成的文档是: Link Error link 浏览器会生成以下内容: Link Error link Jsoup应该作为浏览器或源代码。 有什么解决方案吗? 查看API我没有找到任何东西。

如何使用Jsoup搜索评论(“”)?

我想从源HTML中删除这些标签及其内容。

连接错误:“org.jsoup.UnsupportedMimeTypeException:未处理的内容类型”

当我尝试打开一个用jsoup解析的链接时,我收到一个错误。 连接命令: Document doc = Jsoup.connect(“http://www.rfi.ro/podcast/emisiune/174/feed.xml”) .timeout(10 * 1000).get(); 抛出的错误: Exception in thread “main” org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml. Mimetype=application/rss+xml; charset=utf-8, URL=http://www.rfi.ro/podcast/emisiune/174/feed.xml at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:453) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410) at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164) at org.jsoup.helper.HttpConnection.get(HttpConnection.java:153) at podcast.Pods.main(Pods.java:41)

如何使用JSoup通过表单提交文本

我想使用JSoup将一些文本提交到此表单中。 我该怎么做呢?

Jsoup从表中获取表中的数据

这并不简单。 我正在解析一个页面( http://www.catedralaltapatagonia.com/invierno/partediario.php?default_tab=0 )我需要在其他表中的表中满足的数据,但我无法访问,因为我收到关于无效索引的所有错误指数 我需要这个价值观 这个单元格位于tr内部的td内部,在表格内部,此表格位于另一个表格内。 每列单元格都在div id“meteo_info”中,并且在每个td内部都有相同的名称div id。 我试过这种方式没有成功 Elements base1=document.select(“div#pd_foto_fondo”); Elements base2 = base1.select(“table”); Elements base3 = base2.select(“tr”); Elements base4 = base3.select(“table”); Elements base5 = base4.select(“tr”); Elements base6 = base5.select(“td”); Element base7 =base6.get(0); Element div1 = base7.getElementById(“meteo_info”); Elements tables1 = div1.getElementsByTag(“table”); Element table1 = tables1.get(0); String text2 = table1.getElementsByTag(“tr”).get(3).getElementsByTag(“td”).get(2).text(); 我在Asyntask doInBackground中使用此代码