我需要从标签中分离出配方成分:
for (int i=23233 ; i<100000; i= i+1000){
url = "site adress"+ i+"/";
try {
document=Jsoup.connect(url).userAgent(ua).timeout(0).get();
writeteste(i);
Thread.sleep(3000);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我正在使用此方法解析一个站点:
private static void writeteste(int recnum)
{
Elements destinys = document.getElementsByClass("recipe-tags-tastes");
Iterator<Element> ite = destinys.select("a").iterator();
int ix=1;
while(ite.hasNext()){
System.out.println(recnum +" ; " + ix+" ; " + ite.next().text() );
ix++;
}
这是我正在解析的代码:
<br>
<div class="recipe-tags-tastes"> <div class="gray">
<strong>Tastes:</strong>
<a href="site adress">sweet</a>
</div> <div class="gray">
<strong>Tags:</strong>
<a href="site adress">обед</a>
<a href="site adress">ужин</a>
</div> </div>
<div class="clear">
</div>
<br>
我拥有的输出是品味和标签在一起,我需要品尝,并在那之后标记:
我有什么: 23233; 1;甜 23233; 2;晚餐 23233; 3;晚饭这就是我需要的:
味:
23233; 1;甜
标记:
23233; 1;晚餐
23233; 2;晚餐
我应该在jsoup查询中写什么来单独从这个代码中获取数据&#34;标签&#34;之后呢?
答案 0 :(得分:0)
你应该选择基于div的&#34; grey&#34;类似
for(Element grayTag : doc.select(".gray")) {
System.out.println(grayTag.select("strong").text());
int ix = 1;
for(Element hrefs : grayTag.select("a")){
System.out.println(recnum + "; " + ix + "; " + hrefs.text());
ix++;
}
}
如果recnum是23233,对于给定的html,这将打印
Tastes:
23233; 1; sweet
Tags:
23233; 1; Dinner
23233; 2; Supper
答案 1 :(得分:0)
好的,谢谢你的帮助,现在可行了:
System.out.println("taste : ");
Elements destinys = document.getElementsByClass("recipe-tags tastes");
Element grayTag = destinys.select(".gray").first();
// System.out.println(grayTag.select("strong").text());
int ix = 1;
for(Element hrefs : grayTag.select("a")){
System.out.println(recnum + "; " + ix + "; " + hrefs.text());
ix++;
}
System.out.println("tags : ");
Element secondgrayTag = destinys.select(".gray").last();
int ix2 = 1;
for(Element hrefs : secondgrayTag.select("a")){
System.out.println(recnum + "; " + ix2 + "; " + hrefs.text());
ix2++;}