当前位置:   article > 正文

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

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

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去获取数据。

  1. private List<ipideaIpInfo> getProxy() {
  2. 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);
  3. log.info("代理信息: {}", new Gson().toJson(ipideaProxy));
  4. return ipideaProxy.getData();
  5. }

5.2.1 代码调试

        我们还可以通过代码调试,查看获取到的信息。比如页面的html信息、每次请求可以获取到53个商品数据等。

5.2.2 获取数据

自动化获取数据,最终可以保存到Excel、数据等。

其中最直观的数据,就是标题、销量,从大到小排列。第一条数据是销量最高的商品,其他的次之。

核心代码:

  1. void obtainPetDataFromAmazon(ipideaIpInfo ipInfo, List<PetProduct> petProductList) {
  2. log.info("PetDataTest obtainPetDataFromAmazon begin!");
  3. // 按照销量排行检索商品
  4. String baseUrl = "https://www.amazon.com/s?s=exact-aware-popularity-rank&language=en_US&currency=USD&k=";
  5. // 搜索关键词
  6. String searchName = "dog";
  7. // 按照销量排行检索关键词,搜索特定品类商品
  8. String url = baseUrl + searchName;
  9. Proxy proxy = new Proxy();
  10. // proxy.setHttpProxy(ipInfo.getIp() + ":" + ipInfo.getPort());
  11. System.setProperty("webdriver.chrome.driver", XbbSeleniumUtil.CHROMEDRIVERPATH);// chromedriver localPath
  12. ChromeOptions chromeOptions = new ChromeOptions();
  13. chromeOptions.addArguments("--remote-allow-origins=*");
  14. chromeOptions.addArguments("–no-sandbox"); //--start-maximized
  15. // chromeOptions.setCapability(CapabilityType.PROXY, proxy);
  16. // 增加禁止加载图片的设置
  17. HashMap<String, Object> prefs = new HashMap<>();
  18. prefs.put("profile.default_content_settings", 2);
  19. // chromeOptions.setExperimentalOption("prefs", prefs);
  20. chromeOptions.addArguments("blink-settings=imagesEnabled=false");//禁用图片
  21. WebDriver driver = new ChromeDriver(chromeOptions);
  22. driver.get(url);
  23. // 停顿一秒,等待页面的js执行(ajax获取数据等)
  24. XbbSeleniumUtil.sleep(1000);
  25. //Selenium获取网页内容
  26. //获取Amazon cat商品数据
  27. WebElement mainSelectE = driver.findElement(By.cssSelector("div.s-result-list"));
  28. //转化为Jsoup文档处理
  29. Document doc = Jsoup.parse(mainSelectE.getAttribute("outerHTML"));
  30. //找到cat商品数据集合
  31. Elements elements = doc.select("div.a-spacing-base");
  32. log.info("{}商品 元素的长度:{}", searchName, elements.size());
  33. if (!CollectionUtils.isEmpty(elements)) {
  34. elements.forEach(ele -> {
  35. //商品图片信息
  36. String imgPath = ele.select("span.rush-component>a>div>img").attr("src");
  37. if (StringUtils.isEmpty(imgPath) == false) {
  38. // imgPath = "https:" + imgPath;
  39. log.info("图片地址:{} , 目录:{}", imgPath, searchName);
  40. XbbSeleniumUtil.download(imgPath, this.model, searchName);
  41. }
  42. String sellerNum = ele.select("div.a-spacing-top-micro").select("span.a-color-secondary").text();
  43. if (StringUtils.isEmpty(sellerNum) == false) {
  44. log.info("销量:{} ", sellerNum);
  45. }
  46. String title = ele.select("div.s-title-instructions-style").select("span.a-text-normal").text();
  47. if (StringUtils.isEmpty(title) == false) {
  48. log.info("标题:{} ", title);
  49. }
  50. String price = "";
  51. if (null != ele.select("span.a-price>span.a-offscreen").first()) {
  52. price = ele.select("span.a-price>span.a-offscreen").first().text();
  53. log.info("价格:{} ", price);
  54. } else {
  55. price = ele.select("span.a-color-base").last().text();
  56. log.info("价格:{} ", price);
  57. }
  58. if(!StringUtils.isEmpty(title) ){
  59. petProductList.add(PetProduct.builder()
  60. .title(title)
  61. .sellerStr(sellerNum)
  62. .picUrl(imgPath)
  63. .price(price)
  64. .build());
  65. }
  66. });
  67. }
  68. driver.quit();
  69. log.info("PetDataTest obtainPetDataFromAmazon end!");
  70. }

5.3 导入Excel

5.3.1 导入easyExcel

在pom.xml文件里导入easyExcel依赖项

  1. <dependency>
  2. <groupId>commons-io</groupId>
  3. <artifactId>commons-io</artifactId>
  4. <version>2.11.0</version>
  5. </dependency>

5.3.2 excel核心代码

Excel宠物数据辅助类,核心代码如下:

  1. /**
  2. * 宠物数据 Excel 辅助类
  3. */
  4. public class PetExcelUtil {
  5. public void writeExcel(String filePath, List<PetProduct> data) {
  6. EasyExcel.write(filePath, PetProduct.class).sheet("Sheet1").doWrite(data);
  7. }
  8. }

5.3.3 批量写入Excel核心代码

5.3.4 查看结果

可以在我们预设置好的文件夹里找到已经整理好的数据。

        由于我们在抓取数据时,已经按照销量做了排序,因此在excel里的数据,也是按照销量排序好的数据。可以看到Excel里的数据从第一条的60K+销量依次减少,也能看到标题、价格、图片等信息。

         比如我们统计的这个Excel数据,第一条是6万+销量的药丸狗零食,在1万+销量以上的基本上都是狗狗零食、狗饼干、狗咀嚼玩具等,价格基本上都在 10-50美元左右。

        那我们在选择商品的时候,就可以综合这些因素,保证价格在10-50美元区间,品类控制在狗零食、狗饼干、狗咀嚼玩具上。这样我们上架的商品就可以得到这些相关的搜索流量,增加曝光率,销量也会随之增长。

6.总结

        宠物跨境电商的市场,随着居民的感情需求越来越大了,但是居民也越来越挑剔了,对价格、品牌、质量都有很高的要求。

        这时就需要我们对市场有足够的洞察力,及时的获取到市场销售数据。而今天我们做的自动化应用,就可以满足这些需求。

        今天我们使用Springboot数据获取程序应用 + IPIDEA代理,几分钟就获取到了大量的亚马逊畅销榜宠物商品数据,我们可以根据Excel表单里的数据,明确用户实时的喜好数据。从而可以实时的调整我们的选品,上架用户真正喜好的商品。

        *  IPIDEA所有类型IP仅支持在境外网络环境下使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/965895
推荐阅读
相关标签
  

闽ICP备14008679号