簡體   English   中英

如何通過 Jsoup 獲取亞馬遜鏈接的 img url

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM