我使用以下代码来相邻地提取网页的两个div部分。
问题在于输出的冗余。
似乎输出本身迭代了网页中创建的div数。
Document doc = Jsoup.connect("https://www.bezaat.com/ksa/riyadh/cars/all/1").get();
for(Element el :doc.select("div") )
("div.adv_content_details").text()
System.out.println(el.select("div.adv_content").select
+""+el.select("div.adv_side_price").text().replace("ريال", ""));
这是第一个div
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/crashed-cars/ad/7237581"> نشتري السيارات المصدومه والعطلانه جميع ا... </a>
<span> نشتري جميع السيارات المصدومه والعطلانه جميع الانواع والموديلات ونقوم بتخليص اوراقها من المرور 054190... </span>
</div>
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/nissan/ad/12338243"> باترول فتك 2005 </a>
<span> فتك 2005 قير اتماتيك </span>
</div>
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/lexus/ad/12337943"> لكزس es350 2012 للبيع </a>
<span> بسم الله الرحمن الرحيم لكزس خليجي سقف بانوراما لؤلؤي للبيع ماشي 117000 كم بدون رش باستثناء الصدام... </span>
</div>
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/cars-for-waiver/ad/12337775"> سيارة نسيان التيما 2014 للتنازل </a>
<span> للتنازل سياره نيسان التيما 2014 </span>
</div>
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/mitsubishi/ad/12336659"> لانسر 2009 للبيع مافيها اي مشكلة </a>
<span> سيارة لانسر 2009 للبيع مغيرلها قبل شهرين كراسي ماكينة اصلي ومن اسبوع 4 كفرات جديدة وكل قطعة غيرتها ف... </span>
</div>
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/isuzu/ad/12336437"> دينا ايسوزو NPR موديل 2002 طرمبة كبيرة... </a>
<span> دينا ايسوزو NPR موديل 2002 طرمبة كبيرة 6مسمار المكينة والمحركات على الشرط العداد / 177000 Km... </span>
</div>
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/bmw/ad/12336044"> للبيع او البدل </a>
<span> بي أم X5 موديل 2006 - 8 سلندر -محرك 4.4 ماشيه 237 الف فل كامل - نظيفه وصل السوم في موقع اخر... </span>
</div>
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/kia/ad/12334927"> كيا سبورتاج دفع رباعي للبيع </a>
<span> سيارة كيا سبورتاج موديل 2009 اتوماتيك بحالة الوكالة مالك اول </span>
</div>
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/bmw/ad/9542881"> سيارة بي ام دبلو x5 من فرنسا للبيع </a>
<span> المواصفات : 63605 كم بنزين 261 كيلوواط (355 حصان) أوتوماتيكي معدات الداخلية بلوتوث... </span>
</div>
<div class="adv_content_details">
<a href="https://www.bezaat.com/ksa/riyadh/cars/toyota/ad/12334646"> كامري 2014 </a>
<span> كامري 2014 GL لون اسود نص فل ماشية 25 الف قابلة للزيادة </span>
</div>
这是第二个div
<div class="adv_side_price">
100,000 ريال
</div>
<div class="adv_side_price">
50,000 ريال
</div>
<div class="adv_side_price">
89,000 ريال
</div>
<div class="adv_side_price">
19,500 ريال
</div>
<div class="adv_side_price">
37,000 ريال
</div>
<div class="adv_side_price">
150,000 ريال
</div>
<div class="adv_side_price">
60,000 ريال
</div>
例如,如果我使用此代码
for(Element el :doc.select("div") )
System.out.println(el.select("div.adv_side_price").text().replace("ريال", ""));
输出
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000
100,000
50,000
50,000
89,000
89,000
19,500
19,500
37,000
37,000
150,000
150,000
60,000
60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000 50,000 89,000 19,500 37,000 150,000 60,000
100,000
100,000
50,000
50,000
89,000
89,000
19,500
19,500
37,000
37,000
150,000
150,000
60,000
60,000
以下代码为我提供了我想要的内容,但输出重复多次!
for(Element el :doc.select("div.adv_side_price") )
{
for(Element el2 :doc.select("div.adv_content").select("div.adv_content_details"))
{
System.out.println(el.text()..replace("ريال", "")+""+el2.text().hashCode()) ;
}
输出:
100,000 -32974058
100,000 -471316755
100,000 -1748877593
100,000 -391495340
100,000 710155706
100,000 -1556515445
100,000 2139601232
100,000 1718442269
100,000 475592394
100,000 589546731
65,000 -32974058
65,000 -471316755
65,000 -1748877593
65,000 -391495340
65,000 710155706
65,000 -1556515445
65,000 2139601232
65,000 1718442269
65,000 475592394
65,000 589546731
35,000 -32974058
35,000 -471316755
35,000 -1748877593
35,000 -391495340
35,000 710155706
35,000 -1556515445
35,000 2139601232
35,000 1718442269
35,000 475592394
35,000 589546731
25,000 -32974058
25,000 -471316755
25,000 -1748877593
25,000 -391495340
25,000 710155706
25,000 -1556515445
25,000 2139601232
25,000 1718442269
25,000 475592394
25,000 589546731
19,000 -32974058
19,000 -471316755
19,000 -1748877593
19,000 -391495340
19,000 710155706
19,000 -1556515445
19,000 2139601232
19,000 1718442269
19,000 475592394
19,000 589546731
50,000 -32974058
50,000 -471316755
50,000 -1748877593
50,000 -391495340
50,000 710155706
50,000 -1556515445
50,000 2139601232
50,000 1718442269
50,000 475592394
50,000 589546731
13,000 -32974058
13,000 -471316755
13,000 -1748877593
13,000 -391495340
13,000 710155706
13,000 -1556515445
13,000 2139601232
13,000 1718442269
13,000 475592394
13,000 589546731
56,000 -32974058
56,000 -471316755
56,000 -1748877593
56,000 -391495340
56,000 710155706
56,000 -1556515445
56,000 2139601232
56,000 1718442269
56,000 475592394
56,000 589546731
14,000 -32974058
14,000 -471316755
14,000 -1748877593
14,000 -391495340
14,000 710155706
14,000 -1556515445
14,000 2139601232
14,000 1718442269
14,000 475592394
14,000 589546731
Any suggestion please.
答案 0 :(得分:0)
这并没有给我任何重复。
Document doc = Jsoup.connect("https://www.bezaat.com/ksa/riyadh/cars/all/1").get();
Elements elements = doc.select("div.adv_item");
for (Element el : elements) {
System.out.println(el.select(".adv_content_details").text());
System.out.println(el.select(".adv_side_price").text().replace("ريال", ""));
}