如何通过Jsoup获得亚马逊链接的img url



我正在尝试使用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),这会导致每个查询生成两个图像,其中第一个图像不是实际的产品图像,而是一个"Look inside";标签。

你可以编辑你的选择器:

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

最新更新