我一直在浏览这些joup位以从div中获取一些信息:
http://jsoup.org/cookbook/extracting-data/dom-navigation
Document doc = Jsoup.connect(path).get();
Element cat = doc.getElementById("category_1");
Elements links = cat.getElementsByTag("a");
for (Element link : links)
{
rstring += link.attr("href");
rstring += link.text() + "\n";
}
我编写的代码位不起作用,并且我已经在这工作了几个小时。
我可以通过不同的jsoup函数得到一些我想要的东西,但我需要在这个特定的动作中获取链接,这样我就可以为我的Android应用程序填充某些东西的数组。
我试图解析http://android.myfewclicks.com以测试和构建我的真实网站的应用。
任何帮助都会很精彩。 jsoup只是不合作。
<table class="table_list">
<tbody class="header" id="category_1">
<tr>
<td colspan="4">
<div class="cat_bar">
<h3 class="catbg">
<a class="collapse" href="http://android.myfewclicks.com/index.php?action=collapse;c=1;sa=collapse;c707bdb315=de9d7f201a0964cbab3d56e683507ad7#c1"><img src="http://android.myfewclicks.com/Themes/default/images/collapse.gif" alt="-" /></a>
<a class="unreadlink" href="http://android.myfewclicks.com/index.php?action=unread;c=1">Unread Posts</a>
<a id="c1"></a><a href="http://android.myfewclicks.com/index.php?action=collapse;c=1;sa=collapse;c707bdb315=de9d7f201a0964cbab3d56e683507ad7#c1">Category A</a>
</h3>
</div>
</td>
</tr>
</tbody>
在我的测试论坛上,共有四个类别。这个特定部分里面的三个链接是4组。如果我能弄清楚如何巧妙地解析这些,那么我应该能够在我的应用程序上大跃进。但是jsoup并不像我认为的那样表现,或者我错过了非常重要的东西。
答案 0 :(得分:1)
您显然需要先登录才能获得与href
的链接。当我在未登录的情况下在浏览器中打开网站时,我看到了
<tbody class="header" id="category_1">
<tr>
<td colspan="4">
<div class="cat_bar">
<h3 class="catbg">
<a id="c1"></a>Category A
</h3>
</div>
</td>
</tr>
</tbody>
我可以获得如下链接:
Document document = Jsoup.connect("http://android.myfewclicks.com/").get();
Elements category1links = document.select("#category_1 a");
for (Element category1link : category1links) {
System.out.println(category1links);
}
打印
<a id="c1"></a>
请注意,没有href或文字!
Jsoup不会自动为您登录,也不会接管您计算机上已安装的任意浏览器的cookie。您需要自己登录并维护会话cookie。另请参阅Sending POST request with username and password and save session cookie以获取示例。