关于跨境电商批量采集话题,我在之前的博客已经谈论过好几次了。因为高效且暴力,这种批量采集方式能很方便的把一个平台上的产品批量完整的扒下来,然后鼓捣鼓捣,再批量上传到另一个平台上。批量采集应用广泛,不仅仅可以采集产品信息,同样可以进行数据的批量提交更新操作,结合一些特定环境能实现很多意想不到的效果。
批量采集并非什么高深莫测的技术,有很多方式可以实现。对于程序员来说,Python编写爬虫是首选方式,灵活且强大。但你不能要求人人都能熟练掌握Python这门编程语言。所以,更多的方式是通过第三方软件来实现。
这话题不好讲,来点实操。我想试着写一个跨境电商批量采集系列教程,每篇文章会对一个跨境电商平台进行批量采集演示讲解,算下来,亚马逊、ebay、速卖通、wish、lazada、cdiscount、tophatter、Newegg、Shopee、Walmart、Tradera、Etsy、Joom等等,十几个平台,够我折腾一阵子了。
考虑到大部分卖家的网络技术比较欠缺,用Python来演示估计会听得云里雾里,所以,系列教程会采用第三方采集软件-火车采集器方式进行演示。批量采集演示讲解会采用图文与视频方式进行,图文稿会开放所有读者阅读学习,视频则作为补充内容,放在会员区中向付费会员开放。
明天就是4月1日了,Tophatter从4月1日起实现卖家标准计划和顶级卖家计划。那么,我们就先从Tophatter开始,详细讲解下如何批量采集Tophatter上的产品。
一、分析
打开 tophatter 官方网站,找到产品规律与特征。为了实现批量采集,通常需要先找到展现产品的列表页,然后通过这个页面进入到产品的详细页面。
点击红色箭头指向的 首页的BROWSE链接,进入对应的类目页面,这里就我们要的产品列表页。
在产品列表页中,反敲鼠标右键-点击查看源代码,你会找到网页的源代码。但从上到下仔细翻阅后,你会发现,源代码中并没有任何和产品有关的文字内容可供采集。
是的,通常大部分网站都会直接将产品信息在源代码中直接显示,这样的话,我们只要对代码中需要的内容进行前后截取即可。不过,技术不断更新,日新月异,目前,越来越多的网站弃用了这种传统网站制作方式,更多的是将数据存储在Json中,通过ajax异步加载方式实现,并不直接在源代码中显示。这种数据抓取方式会复杂一些,但仍然有办法可以抓到。
打开你的Chrome浏览器,没有的话就安装一个,这里需要用到Chrome的开发者工具,按F12 ,刷新页面,观察XHR,你会找到一个可疑的JSON数据包链接,复制这个链接地址,在浏览器中打开这个链接,你会看到类似下图内容,这就是我们需要的产品列表页的内容。
一堆乱码,看不懂也没关系,这么乱,我也看不懂,那么将这些内容复制粘贴到 https://www.json.cn 这里,格式化后查看你可以看到如下内容:
这样就清晰多了,这是一个产品的字段信息,包括了id、图片、长、宽、高、价格、评分、折扣等信息。仔细检查发现,我们要的产品标题和描述内容这些信息并没在这里面。
我们继续找规律,在列表点击其中一个产品,可以进入产品页面,观察XHR,你会看到如下图这个json数据包链接,同样上述步骤,在浏览器中打开这个链接,复制内容到www.json.cn 格式化后看到了产品的详细信息了。
非常完整,运费、关注度、描述、变体信息全部都在。接下来,就是抓取信息了。
二、抓取
这里只做演示,所以,只采集其中一个字段,按照这个方法,以此类推,即可采集到完整的数据信息。
打开火车采集器,新建一个任务。开始之前,还得分析下列表页和产品页之间的联系。
列表页:https://tophatter.com/api/v1/catalogs/9180/retrieve.json?per_page=50&page=2
看到后面的per_page=50和page=2,多找几个,你会发现,per_page=50是固定不变的,page=2则会在鼠标滚动一次增加1,按照字面上的意思per_page表示每页显示50个,page是指当前加载到第几页。这样就好理解了,如果我要把这个类目的100页面产品全部抓取下来,那么只要把page-2改成100,然后,100页*50个=-5000,如此,通过这种方式就可以得到5000个产品了。
内容页:https://tophatter.com/api/v1/lots/61057684?source=catalog-9180
当然,我们要抓的是产品详细信息,所以,找出列表页和文本页之间的关联,仔细分析,你会发现这个id是之间的关联节点。那么我们就可以从这里入手去爬取信息了。
如上图,把page=后面的数字用[地址参数]替换,在下面的数字变换中填入你希望抓取的页面。在预览中即可看到这些列表页了。接下来,在列表页内容中继续找规律。
发现了什么?这个id似乎是有规则的出现。比如: {“id”:10262283,”product_parent_id” 这样的话,我们可以通过变量替换方式,把这个id拼接到内容页上,如下图所示;
点击网址采集测试看看效果;看下图,果然可以,已经成功采集到了内容页了。
接下来就可以抓取内容页的详细信息了。
抓取内容有2种方式可以实现。第一种就跟上面的一样,前后截取,第二种是更智能化的json方式。
在内容采集规则页上新建title字段,按上图步骤,点json提取,点选择,将内容页json链接地址输入到url中,或者将json文本粘贴到json文本中,点击title,确定。到这里,我们就顺利抓取到了title标题信息。
那么,运行下采集试试。
果然可以。最后,简单设置下保存的文件。
开始采集….别太凶悍,适当降低采集速度。
已经采集到了,完成文件发布后,在桌面上可以找到数据文件。到这里,采集工作就全部做完了。
总结:
这个演示实例,只采集了titile。你可以用同样的方法将描述、价格、图片、评级等所有信息采集下来。我在以前的文章也反复提到过,谨慎使用这种方式进行铺货,特别是在你没有一套相对完善的产品管理系统之前,不要乱来。这种方式是暴力且高效,但切勿滥用,以免引火烧身。批量采集并非什么高深技术,会些技术的卖家都能做到,这更不是什么黑科技,小心被骗了。