1.前言-跨境选品
跨境电商选品难,主要因为需要考虑不同市场的文化差异和消费习惯,准确预测需求。供应链管理、物流成本和关税问题也增加了复杂性。此外,市场竞争激烈,产品合规性要求高。卖家必须进行详细的市场调研,分析趋势,确保产品具有竞争力和合规性,同时保持灵活应对市场变化。
美国市场研究显示,有过亿的居民都选择养宠物,其中猫狗的数量是最多的。一方面是个体的隐私要求越来越高,但感情陪伴又不可或缺,因此大多数人选择养宠物来感情陪伴。
因此,今天我们将聚焦于【宠物】跨境电商的选品议题,通过深入分析头部大平台的榜单数据,旨在为【宠物】跨境电商的选品提供有力的数据支持与决策依据。
2.获取Top平台宠物畅销数据
亚马逊一直位于跨境电商Top3的地位,那么以亚马逊跨境电商为例,用户喜好最多的商品,必然就是最畅销的商品之列。
因此,我们选择用户喜欢最多的猫、狗关键词,再按照销量排序,去获取我们需要的数据。
3.如何获取具体分类的数据?
以前我们做选品,通常会招聘多个运营专员,每隔几小时去亚马逊平台上查看猫狗商品数据,然后人工把数据一条一条复制粘贴下来。通常一遍做下来,1-2小时就过去了(根据数据样本的大小决定),而且人工也很容易出错。
今天我们利用代理IP使用代码去获取亚马逊跨境电商网站上的畅销榜单,只需要几分钟就能获取到几页、几十页的畅销榜数据,而且其中的主题图、标题、价格、星级、销量都很完备。
我们获取到具体分类的搜索网址,以及其他相关数据(区域、销量排序等)。
4.使IPIDEA代理的必要性
由于我们是一支跨境电商运营团队,总部就位于德国,其实可以看到亚马逊的德国站,搜索到的cat畅销数据是针对于德国地区的数据。
因此如果我们想针对美国市场去做宠物电商选品,就需要去获取亚马逊美国站的数据,以当地的畅销榜数据,去做选品决策。
这里给大家介绍一款全球领先的代理产品:IPIDEA,该公司的产品种类多种多样,既有动态代理也有静态代理。而且IPIDEA拥有数以亿计的代理池,在全球220+国家地区都有优质IP代理。比如我们今天要做美国的选品,那么可以选择美国区域的动态IP代理。
4.1 IPIDEA的IP代理几大好处
4.1.1 提供全球多个区域的代理
可以更精准的获取数据(可以切换亚马逊电商不同区域,比如美国、德国、英国,展示的宠物商品、价格、销量都不一样),而IPIDEAIP代理覆盖全球220多个国家地区,自建9000万纯净住宅IP池,基本可以满足我们的需求。
4.1.2 使用动态IP代理,性价比更高
今天我们实验的是爬取宠物数据,针对亚马逊电商的规则,我们使用动态IP来获取数据。例如,我们可以获取10个短期有效的美国区域IP,去分别获取10页数据。动态IP流量的使用费相对比其他家动态IP,相同价格下,IPIDEA的动态IP的性价比更高。
独享的静态IP更适用于跨境电商企业用于养号、社媒营销,有需要的伙伴同样可以选择试用。
4.1.3 文档齐全,便捷的API接口,方便在代码里接入
目前,IPIDEA已为100万+的用户提供服务,并且赢得了众多知名企业的信赖。其中良好的服务功不可没,尤其是文档这块非常齐全,比如截图展示的数据中心IP接口,基本信息、请求参数、返回示例等都非常详细。
4.1.4 选品所需数据较多,使用代理减少单一IP的风险
亚马逊电商也有网络安全防护,会有用户行为异常监控,比如我们使用家里的住宅IP,去浏览网站,基本上是间隔2-10秒访问一个页面。如果我们通过一个IP,在10秒内获取了10页数据(500+条数据),这时候就会引发网站的异常监控。
这种情况下,我们可以使用动态代理IP,每个IP控制在5-10内只使用一次,这样就可以合理的减少风险了。
5.使用代码获取亚马逊宠物数据
5.1 测试代理
5.1.1 注册登录
点击进入IPIDEA官网,使用手机号注册账号并登录。
Ps: 现在IPIDEA新用户注册可以免费领取测试额度哦,可以全方位体验IPIDEA代理服务。
登录之后,我们在个人中心就可以找到账户管理、获取代理、购买记录、接口文档等菜单,也可以查看详细的代理统计信息,实时掌握代理使用情况。
5.1.2 查看API
通过【获取代理】可以找到【api获取】方式,去获取代理。可以看到,有很多参数都是我们可以自由选择的,比如数据格式可以使用txt、json,国家地区可以按需求选择,提取数量、分隔符等等。
5.1.3 测试代理
复制上一步生成的测试链接,可以获取到代理IP。
5.2 构建项目
使用Springboot快速构建一个爬虫项目,确定目标站点搜索地址。
使用ipidea提供的代理API,获取动态IP代理信息,通过迭代IP去获取数据。
private List<ipideaIpInfo> getProxy() {
ipideaProxy ipideaProxy = restTemplate.getForObject("http://api.proxy.ipidea.io/getProxyIp?num=1&return_type=json&lb=1&sb=0&flow=1®ions=us&protocol=http", ipIdeaProxy.class);
log.info("代理信息: {}", new Gson().toJson(ipideaProxy));
return ipideaProxy.getData();
}
5.2.1 代码调试
我们还可以通过代码调试,查看获取到的信息。比如页面的html信息、每次请求可以获取到53个商品数据等。
5.2.2 获取数据
自动化获取数据,最终可以保存到Excel、数据等。
其中最直观的数据,就是标题、销量,从大到小排列。第一条数据是销量最高的商品,其他的次之。
核心代码:
void obtainPetDataFromAmazon(ipideaIpInfo ipInfo, List<PetProduct> petProductList) {
log.info("PetDataTest obtainPetDataFromAmazon begin!");
// 按照销量排行检索商品
String baseUrl = "https://www.amazon.com/s?s=exact-aware-popularity-rank&language=en_US¤cy=USD&k=";
// 搜索关键词
String searchName = "dog";
// 按照销量排行检索关键词,搜索特定品类商品
String url = baseUrl + searchName;
Proxy proxy = new Proxy();
// proxy.setHttpProxy(ipInfo.getIp() + ":" + ipInfo.getPort());
System.setProperty("webdriver.chrome.driver", XbbSeleniumUtil.CHROMEDRIVERPATH);// chromedriver localPath
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--remote-allow-origins=*");
chromeOptions.addArguments("–no-sandbox"); //--start-maximized
// chromeOptions.setCapability(CapabilityType.PROXY, proxy);
// 增加禁止加载图片的设置
HashMap<String, Object> prefs = new HashMap<>();
prefs.put("profile.default_content_settings", 2);
// chromeOptions.setExperimentalOption("prefs", prefs);
chromeOptions.addArguments("blink-settings=imagesEnabled=false");//禁用图片
WebDriver driver = new ChromeDriver(chromeOptions);
driver.get(url);
// 停顿一秒,等待页面的js执行(ajax获取数据等)
XbbSeleniumUtil.sleep(1000);
//Selenium获取网页内容
//获取Amazon cat商品数据
WebElement mainSelectE = driver.findElement(By.cssSelector("div.s-result-list"));
//转化为Jsoup文档处理
Document doc = Jsoup.parse(mainSelectE.getAttribute("outerHTML"));
//找到cat商品数据集合
Elements elements = doc.select("div.a-spacing-base");
log.info("{}商品 元素的长度:{}", searchName, elements.size());
if (!CollectionUtils.isEmpty(elements)) {
elements.forEach(ele -> {
//商品图片信息
String imgPath = ele.select("span.rush-component>a>div>img").attr("src");
if (StringUtils.isEmpty(imgPath) == false) {
// imgPath = "https:" + imgPath;
log.info("图片地址:{} , 目录:{}", imgPath, searchName);
XbbSeleniumUtil.download(imgPath, this.model, searchName);
}
String sellerNum = ele.select("div.a-spacing-top-micro").select("span.a-color-secondary").text();
if (StringUtils.isEmpty(sellerNum) == false) {
log.info("销量:{} ", sellerNum);
}
String title = ele.select("div.s-title-instructions-style").select("span.a-text-normal").text();
if (StringUtils.isEmpty(title) == false) {
log.info("标题:{} ", title);
}
String price = "";
if (null != ele.select("span.a-price>span.a-offscreen").first()) {
price = ele.select("span.a-price>span.a-offscreen").first().text();
log.info("价格:{} ", price);
} else {
price = ele.select("span.a-color-base").last().text();
log.info("价格:{} ", price);
}
if(!StringUtils.isEmpty(title) ){
petProductList.add(PetProduct.builder()
.title(title)
.sellerStr(sellerNum)
.picUrl(imgPath)
.price(price)
.build());
}
});
}
driver.quit();
log.info("PetDataTest obtainPetDataFromAmazon end!");
}
5.3 导入Excel
5.3.1 导入easyExcel
在pom.xml文件里导入easyExcel依赖项
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
5.3.2 excel核心代码
Excel宠物数据辅助类,核心代码如下:
/**
* 宠物数据 Excel 辅助类
*/
public class PetExcelUtil {
public void writeExcel(String filePath, List<PetProduct> data) {
EasyExcel.write(filePath, PetProduct.class).sheet("Sheet1").doWrite(data);
}
}
5.3.3 批量写入Excel核心代码
5.3.4 查看结果
可以在我们预设置好的文件夹里找到已经整理好的数据。
由于我们在抓取数据时,已经按照销量做了排序,因此在excel里的数据,也是按照销量排序好的数据。可以看到Excel里的数据从第一条的60K+销量依次减少,也能看到标题、价格、图片等信息。
比如我们统计的这个Excel数据,第一条是6万+销量的药丸狗零食,在1万+销量以上的基本上都是狗狗零食、狗饼干、狗咀嚼玩具等,价格基本上都在 10-50美元左右。
那我们在选择商品的时候,就可以综合这些因素,保证价格在10-50美元区间,品类控制在狗零食、狗饼干、狗咀嚼玩具上。这样我们上架的商品就可以得到这些相关的搜索流量,增加曝光率,销量也会随之增长。
6.总结
宠物跨境电商的市场,随着居民的感情需求越来越大了,但是居民也越来越挑剔了,对价格、品牌、质量都有很高的要求。
这时就需要我们对市场有足够的洞察力,及时的获取到市场销售数据。而今天我们做的自动化应用,就可以满足这些需求。
今天我们使用Springboot数据获取程序应用 + IPIDEA代理,几分钟就获取到了大量的亚马逊畅销榜宠物商品数据,我们可以根据Excel表单里的数据,明确用户实时的喜好数据。从而可以实时的调整我们的选品,上架用户真正喜好的商品。
* IPIDEA所有类型IP仅支持在境外网络环境下使用