当前位置: 首页 > 知识库问答 >
问题:

使用Jsoup从特定类获取所有href值

谯德元
2023-03-14

我试图解析我的大学网站,以获得一个新闻列表(标题+链接)从主要网站。然而,当我试图解析一个完整的网站时,我要查找的链接被嵌套在其他类、表等的深处。下面是我试图使用的代码:

String url = "http://www.portal.pwr.wroc.pl/index,241.dhtml";
    Document doc = Jsoup.connect(url).get();
    Elements links = doc.select("table.cwrapper .tbody .tr td.ccol2 div.cwrapper_padd div#box_main_page_news.cbox.grey div#dyn_main_news.cbox.padd2 div.nitem table.nitemt .tbody .tr td.nitemcell2 span.title_1");
    ArrayList <String> listOfLinks = new ArrayList <String> ();
    int counter = 0;


    for (Element link : links) {

        listOfLinks.add(link.text());

    }

但不管用。如果每一个链接都放在以下位置,那么是否有更好的方法获得所有这些链接的href值和标题:

<span class = "title_1">
    <a href="Link Adress">Link Title</a>
</span>

也许是某种循环,它会迭代所有这些标记,并从中获取值?

感谢帮助:-)

共有1个答案

欧阳炜
2023-03-14

您的主要问题是,您要查找的信息并不存在于您正在使用的URL中,而是存在于http://www.portal.pwr.wroc.pl/box_main_page_news,241.dhtml?limit=10。
您应该首先获得该页面,然后使用该页面(这是气垫船和Andrei Volgon的答案的组合)-

String url = "http://www.portal.pwr.wroc.pl/box_main_page_news,241.dhtml?limit=10";
String baseURL = "http://www.portal.pwr.wroc.pl/";
Document doc = Jsoup.connect(url).get();
Elements links = doc.select(".title_1 > a");
for (Element link : links) {
    System.out.println("Title - " + link.text());
    System.out.println(baseURL + link.attr("href"));
}
 类似资料:
  • 我有一些url。我想从url指向的html中获取所有href,从所有获取的hrefs中获取所有href(递归)。关键是我想设置“递归”的深度。例如,如果深度=1,我只需要来自超文本标记语言的href。如果深度=2,我需要来自超文本标记语言的hrefs(假设为list1)和来自list1的每个href的hrefs,依此类推 以下是我使用jsoup得到的结果: 我应该如何修复递归条件以使其正确?

  • 我有一个HTML,比如, 这里有两个“tel”类元素,如何提取这两个元素?如果程序不知道这些名为“tel”的类的数量,如何提取?请帮忙。 最终目标是获取tel类元素中的所有文本。 我已经试着用下一个兄弟元素来解决这个问题。但是那里没有运气。不过我可能试错了。请纠正我或帮助我实现我在这里尝试的目标。 提前谢谢。

  • 我正在使用jsoup库,今天我遇到了一个问题。我必须刮取DuckDuckGo并为每个页面获取查询结果的所有标题,但使用 我只得到关于第一页的结果。我怎样才能继续下一页?

  • 我的代码不会获取这样的链接。使用doc.select也没有帮助。我的问题是,如何从页面中获得所有链接? 编辑:我想我知道问题出在哪里了。我遇到麻烦的页面写得很糟糕,HTML验证器抛出了大量的错误。这会引起问题吗?

  • 问题内容: 我开始将Scrapy用于一个小型项目,但无法提取链接。每次找到该类时,我只会得到“ []”而不是URL。我是否缺少明显的东西? 来自网站的示例: 问题答案: 你的xpath查询错误 在这一行中,你实际上是在对没有任何Href属性的div进行迭代 为了使其正确,你应该在中选择元素: 最好的解决方案是直接href在for循环中提取属性 为了简单起见,你还可以使用CSS选择器