首页 > 解决方案 > Java JSoup 从网站抓取 img src 返回一个奇怪的 url

问题描述

当我尝试抓取时: https://www.game.co.uk/webapp/wcs/stores/servlet/AjaxCatalogSearchView?searchTermScope=&searchType=&filterTerm=&catGroupId=&maxPrice=&contentOnly=&filterTermOperator=&RASchemaType=&attributeName1=Genre&sType=SimpleSearch&filterType=&resultCatEntryType =2&catalogId=10201&pageView=image&sortBy=MOST_POPULAR_DESC&minPrice=&categoryType=&attributeValue1=4294952868&storeId=10151&langId=44&catgrpSchemaType=&storeOnly=&searchTerm=rpg&searchTermOperator=&pageNumber=1&inStockOnly=true&pageSize=96

对于一个 img 我得到这个作为回报:

/wcsstore/SafeStorefrontAssetStore/locale/en_GB/Style1/img/email/spacer.gif

我尝试使用 .attr("abs:src") 和 .attr("src") 但都返回错误的网址。

Elements prods = doc.select(".product");
Elements img = prods.get(i).select(".productHeader a img");
String imageUrl = img.attr("src");

标签: javaimageweb-scrapingjsoupsrc

解决方案


我认为你的问题是你的选择器:

元素 img = prods.get(i).select(" .productHeader >a>img ");

那应该可以解决您的问题!

新条目:您需要检查“data-src”,它具有前面没有协议的图像的 url String imageUrl = img.attr("data-src");

=> 例如“//img.game.co.uk/ml2/7/3/1/5/731542_ps4_b.png”


推荐阅读