[英]Going to next page when web scraping with Jsoup
我正在嘗試用 Jsoup 刮掉這個https://www.actksa.com/ar/training-courses/training-in/Jeddah我寫的代碼只需要第一頁上的主題。
try {
String url = "https://www.actksa.com/ar/training-courses/training-in/Jeddah";
Document doc = Jsoup.connect(url).get();
Elements data = doc.select("tr");
int size = data.size();
Log.d("doc", "doc: "+doc);
Log.d("data", "data: "+data);
Log.d("size", ""+size);
for (int i = 0; i < size; i++) {
String title = data.select("td.wp-60")
.eq(i)
.text();
String detailUrl = data.select("td.wp-60")
.select("a")
.eq(i)
.attr("href");
parseItems.add(new ParseItem(title, detailUrl));
Log.d("items"," . title: " + title);
如何繼續從下一頁中抓取主題? 我注意到我可能可以使用分頁,但我不確定如何使用。 其次,當轉到下一頁時,鏈接會略有變化,所以我可以使用它。 go 到下一頁的代碼是什么並繼續抓取標題?
該站點的分頁似乎由?page=<int>
查詢參數控制。 只需將現有代碼包裝在一個控制當前頁面的for
循環中。
int numPages = 5; // the number of pages to scrape
for (int i = 0; i < numPages; i++) {
String url = "https://www.actksa.com/ar/training-courses/training-in/Jeddah?page=" + i;
Document doc = Jsoup.connect(url).get();
Elements data = doc.select("tr");
int size = data.size();
Log.d("doc", "doc: "+doc);
Log.d("data", "data: "+data);
Log.d("size", ""+size);
for (int j = 0; j < size; j++) {
String title = data.select("td.wp-60")
.eq(j)
.text();
String detailUrl = data.select("td.wp-60")
.select("a")
.eq(j)
.attr("href");
parseItems.add(new ParseItem(title, detailUrl));
Log.d("items"," . title: " + title);
}
}
如果您想在不硬編碼數字的情況下獲取所有頁面,則將遞增放在一個 while 循環中,當頁面上的表格沒有內容時,該循環將中斷。 例如https://www.actksa.com/ar/training-courses/training-in/jeddah?page=6
不是有效頁面,僅顯示一個帶有空表的頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.