【发布时间】:2019-09-24 17:50:28
【问题描述】:
所以我正在使用 JSoup 抓取一个网站,该网站创建了一堆具有动态类名的 div(它们每次重新加载都会更改),但属性名相同。例如:
<div class="[random text here that changes] js_resultTile" data-listing-number="[some number]">
<div class="a12_regularTile js_rollover_container " itemscope itemtype="http://schema.org/Product" data-listing-number="[same number here]">
<a href...
我尝试了多种方法来选择这些 div 并将它们保存在元素中,但我似乎无法做到正确。我试过按属性:
Document doc = Jsoup.connect([theUrl]).get();
Elements myEls = doc.select("div[data-listing-number]");
我已经按班级尝试过:
Document doc = Jsoup.connect([theUrl]).get();
Elements myEls = doc.getElementsByClass("a12_regularTile")
还有:
Document doc = Jsoup.connect([theUrl]).get();
Elements myEls = doc.select("div[class*=js_resultTile]")
我尝试了另一种属性方法:
Document doc = Jsoup.connect([theUrl]).get();
Elements myEls = new Elements();
for (Element element : doc.getAllElements() )
{
for ( Attribute attribute : element.attributes() )
{
if ( attribute.getKey().equalsIgnoreCase("data-listing-number"))
{
myEls.add(element);
}
}
}
这些都不起作用。我可以选择获取所有 HTML 的文档,但我的 myEls 对象始终为空。我可以使用什么来选择这些元素?
【问题讨论】: