对于我的生活,我无法弄清楚如何使用jsoup选择img src,链接以“51u1FaI-FHL._SL500_AA300_.jpg”结尾。
我尝试了很多东西,但都没有。有什么帮助吗?
doc1 = Jsoup.connect("http://www.amazon.com/gp/product/B0051HDDO2?ie=UTF8&ref=mas_faad").timeout(20000).get();
Element table = doc1.select("table[class=productImageGrid]").first()
Iterator<Element> ite = table.select("td[height=300]").iterator();
谢谢, 科迪
<table style="text-align: center;" border="0" cellpadding="0" cellspacing="0" width="300">
<tr>
<td id="prodImageCell" height="300" width="300" style="padding-bottom: 10px;"><img onclick="if(0 ){ async_openImmersiveView(event);} else {openImmersiveView(event);}" class="prod_image_selector" style="cursor:pointer;" onload="if (typeof uet == 'function') { uet('af'); }" **src="http://ecx.images-amazon.com/images/I/51u1FaI-FHL._SL500_AA300_.jpg"** id="prodImage"/><div id="prodImageCellInner" style="position: relative; height:0px; "><!--Comment for IE as it is empty div--></div></td>
<td id="prodVideoClick" style="display:none"></td>
<img id="loadingImage" src=http://g-ecx.images-amazon.com/images/G/01/ui/loadIndicators/loading-large_boxed._V192195297_.gif style="position: absolute; z-index: 200; display:none">
</tr>
<tr>
<td class="tiny" style="padding-bottom: 5px;"> <span id="prodImageCaption" style="color: #666666; font-size: 10px;">Click for larger image and other views</span> </td>
</tr>
</table>
答案 0 :(得分:0)
@ user793728:试试这个: -
document = Jsoup.connect("http://www.amazon.com/gp/product/B0051HDDO2?ie=UTF8&ref=mas_faad").timeout(20000).get();
Elements elements =document.select(".prod_image_selector");
for (Element element : elements){
Attributes imageAttributes=element.attributes();
for (Attribute attribute: imageAttributes){
if(attribute.getKey().equals("src")){
String imageURL=attribute.getValue();
}
}
}
答案 1 :(得分:0)
这里的问题似乎是亚马逊根据请求UserAgent将不同的HTML返回到jsoup而不是浏览器。
我将UserAgent设置为已知浏览器,并使用#prodImage
ID选择元素,并将结果设置为OK。
E.g。
Document doc = Jsoup.connect("http://www.amazon.com/gp/product/B0051HDDO2?ie=UTF8&ref=mas_faad")
.timeout(20000)
.userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30")
.get();
Element img = doc.select("#prodImage").first();
System.out.println(img.attr("src"));
返回http://ecx.images-amazon.com/images/I/51u1FaI-FHL._SL500_AA300_.jpg
要解决此类问题,我建议输出doc.html()
并查看检索到的已解析HTML,因为它可能与浏览器的视图源HTML不同(因为服务器可以返回不同的HTML,并查看-source在HTML被整理并构建到DOM之前显示。
希望这有帮助!