我在这里遇到了一个奇怪的问题,我使用Jsoup 1.7.2已经有一段时间了,没有问题,只是现在,当我尝试从这个网站检索主要标题时:www.jornaldamarinha.pt,使用此代码:
// Connecting...
Document doc = Jsoup.connect("http://www.jornaldamarinha.pt")
.timeout(0)
.get();
// "*[class*=zincontent-wrap]" in "Jsoup idiom", means:
// Select all tags that contains classes with "zincontent-wrap" on its name.
Elements elems = doc.select("*[class*=zincontent-wrap]"); // Retrieves 0 results!
int t = elems.size();
Log.w("INFO", "Total Headlines: " + t);
// Loop trought all retrieved headlines:
for (Element e : elems) {
String headline = e.select("a").text().toString();
Log.w("HEADLINE", headline);
};
它失败了!... 检索 0 个结果。(应该检索〜8)
问题可能是由以下原因引起的:
- 外星人... (类似于机器人,但更丑...)
- 网站编码。(我尝试使用 ISO-8859-15 对传入的 HTML 进行编码,以处理葡萄牙语特殊字符,但问题仍然存在)
- 格式错误的传入 HTML。(我怀疑这可能是问题所在,因为选择器在“试用 jsoup 在线网页”上运行良好,而且 Jsoup 通常可以很好地处理损坏的 HTML)
- 在类名(“-”)中使用减号会弄乱 Jsoup。(在我看来,这是问题的主要(或至少是一个)原因)
- 别的东西...... (很可能!)
但是...在http://try.jsoup.org ,如果我使用这个 CSS 查询获取 URL:http ://www.jornaldamarinha.pt:
*[class*=zincontent-wrap]
一切都很好,那里!(检索所有 ~8 个正确结果!)
所以...要恢复,我只需要完全按照该网页的功能进行操作,但要使用代码。
提前感谢您提供有关此问题的任何提示或解决方法!:)