技术问询:使用jQuery为data-src添加http://www前缀,处理爬虫图片链接
给图片URL添加域名前缀的解决方案
嘿,这事儿好办!你只需要在获取data-src之后,先判断它是不是已经带有完整的HTTP前缀,如果没有的话,再把http://www拼接上去就行——这样能避免给本来就是完整URL的图片重复加前缀,导致链接失效。
修改后的完整代码如下:
function pageFunction(context) { var $ = context.jQuery; var results = []; $('.product').each(function() { // 先拿到图片的原始data-src值 const rawImageSrc = $(this).find('.plp-product-anchor img').attr('data-src'); // 处理前缀:仅当链接不是完整HTTP地址时添加前缀 const fullImageUrl = rawImageSrc && !rawImageSrc.startsWith('http') ? `http://www${rawImageSrc}` : rawImageSrc; results.push({ title: $(this).find('.plp-product-anchor').attr('title'), link: $(this).find('.plp-product-anchor').attr('href'), price: $(this).find('span[itemprop="price"]').text(), image: fullImageUrl, }); }); // 别忘了返回结果数组哦 return results; }
几个关键细节:
- 用
startsWith('http')判断链接是否为完整地址,兼容HTTP和HTTPS两种情况 - 加了
rawImageSrc &&的前置判断,防止data-src为空时出现无效拼接 - 把URL处理逻辑单独抽出来,后续要换前缀(比如换成
https://www)也方便修改
内容的提问来源于stack exchange,提问作者dudeski
相关产品推荐
相关产品推荐

