![](/img/trans.png)
[英]How to get the absolute url of img elements from an unordered list in JSoup
[英]How to get img url for Amazon links via Jsoup
我正在嘗試使用 Jsoup 進行豐富的鏈接預覽。
對於大多數網站,我只是使用標簽元來獲取標題/圖片,但這不適用於亞馬遜圖片。
使用 Jsoup 提取這些圖像的最佳方法是什么? 我試過了
document.select(img#landingImage)
和
document.getElementById("landingImage")
和
img.attr("data-old-hires")
或者
img.attr("src")
但這些似乎不適用於所有亞馬遜鏈接。
獲得任何亞馬遜鏈接以進行適當預覽工作的最佳方法是什么?
我首先嘗試復制/粘貼瀏覽器在導航到圖像后建議的選擇器。 根據您的示例,建議是#landingImage
或#imgBlkfront
。
這些選擇器顯然過於具體,並不能反映一般的亞馬遜產品頁面布局。
經過更多研究,我發現了以下結構:
<!-- ... -->
<div id="main-image-container">
<!-- ... -->
<img src="the url you are looking for">
<!-- ... -->
適合您圖像的選擇器如下所示:
div#main-image-container img
但在某些情況下(例如: https : //www.amazon.com/dp/1947215450 ),這會導致每個查詢生成兩張圖片,其中第一張圖片不是實際的產品圖片,而是“查看內部”標簽.
您可以編輯您的選擇器來解決這個問題:
div#main-image-container img:not(#sitbLogoImg)
或者簡單地選擇結果的最后一張圖像。
最后結果:
// your amazon product page link
// String url = ...
Document doc = Jsoup.connect(url).get();
System.out.println(doc.select("div#main-image-container img").last().attr("src"));
編輯
似乎是什么問題? 到目前為止,您發布的每個鏈接都對我有用。 具體來說,這段代碼:
Document doc = Jsoup.connect("https://rads.stackoverflow.com/amzn/click/com/B0792QJ28Y").get();
System.out.println(doc.select("div#main-image-container img").last().attr("src"));
doc = Jsoup.connect("https://rads.stackoverflow.com/amzn/click/com/B0815XFSGK").get();
System.out.println(doc.select("div#main-image-container img").last().attr("src"));
doc = Jsoup.connect("https://rads.stackoverflow.com/amzn/click/com/1974725928").get();
System.out.println(doc.select("div#main-image-container img").last().attr("src"));
doc = Jsoup.connect("https://rads.stackoverflow.com/amzn/click/com/1947215450").get();
System.out.println(doc.select("div#main-image-container img").last().attr("src"));
doc = Jsoup.connect("https://rads.stackoverflow.com/amzn/click/com/B07RRRV5CT").get();
System.out.println(doc.select("div#main-image-container img").last().attr("src"));
輸出:
https://images-na.ssl-images-amazon.com/images/I/81OjP3A5B-L.__AC_SX300_SY300_QL70_ML2_.jpg
https://images-na.ssl-images-amazon.com/images/I/61DYLoyNRWL.__AC_SY300_SX300_QL70_ML2_.jpg
https://images-na.ssl-images-amazon.com/images/I/51YyZr8Sf+S._SY344_BO1,204,203,200_.jpg
https://images-na.ssl-images-amazon.com/images/I/51OudKdwxDL._SX218_BO1,204,203,200_QL40_ML2_.jpg
https://images-na.ssl-images-amazon.com/images/I/81IqKdsFOvL.__AC_SX300_SY300_QL70_ML2_.jpg
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.