使用IPIDEA海外代理助力宠物跨境电商3

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&regions=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&currency=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仅支持在境外网络环境下使用

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新一代小卷王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值