系列教程

手把手教你写电商爬虫-第一课 找个软柿子捏捏

如果没有看过第一课的朋友,请先移步第一课,第一课讲了一些基础性的东西,通过软柿子"切糕王子"这个电商网站好好的练了一次手,相信大家都应该对写爬虫的流程有了一个大概的了解,那么这课咱们就话不多说,正式上战场,对垒尚妆网。

首先,向我们被爬网站致敬,没有他们提供数据,我们更是无从爬起,所以先安利一下尚妆网:

经营化妆品时尚购物,大数据为驱动,并依托智能首饰为入口的新一代智慧美妆正品电子商务平台。其创始团队来自天猫、支付宝、欧莱雅、薇姿等互联网公司和化妆品集团。
好吧,我很懒,直接从百度知道里抄过来的,不过不代表我没有诚意。OK,言归正传,我们先把我们的工具包拿出来:

1、神箭手云爬虫,2、Chrome浏览器 3、Chrome的插件XpathHelper 不知道是干嘛的同学请移步第一课

古代战士上战场前,必须先好好的观察对手,所谓知己知彼,百战不殆。我们先来观察一下尚妆网

从首页大家能看出什么?说美女很美的,还有说美女表情很到位的同学,你们可以先回家了。

剩下的同学,我们继续了:

可以看出,作为一个完善的电商网站,尚妆网有着普通电商网站所拥有的主要的元素,包括分类,分页,主题等等。首先我们要确定我们希望要爬取哪一类数据,当然作为爬虫来说,全部爬下来不是不行,不过对于做实验来说,就没必要了。好,我们假设:我们要爬护肤里的面膜品类所有商品,价格和销量,至于为什么是面膜,你们猜呢?

废话太多了,我们开始爬虫三步走,跟着我再背诵一遍:1、选入口Url 2、限定内容页和中间页 3、写内容页抽取规则

1、选定入口url

这个简单,找到面膜页面的地址:

http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C

好,就是它了。

2、区分内容页和中间页

好,重点来了,尚妆网的列表页面,是通过ajax动态加载了,这个怎么实现呢?我们先不着急,先看下内容页

http://item.showjoy.com/sku/26551.htmlhttp://item.showjoy.com/sku/100374.html

内容页很简单,我们直接提取成正则表达式

http://item\\.showjoy\\.com/sku/\\d+\\.html

那么列表页呢?首先,第一个当然是:

http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C

下一页的链接是什么呢?这个时候就需要借助chrome浏览器的开发者工具,我们打开工具,切换到network选项卡,向下滑动加载下一页,可以看到展示出的连接地址:

注意,可以忽略掉png这些图片的文件,直接看到下一页的连接,我们将链接复制出来:

http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C&stock=1&page=4&_synToken=59a6c555b0947486769f35d010353cd5

看着好像很复杂,不过page我认识,其他的可以去掉吗?我们试一下访问

http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C&page=4

貌似正常打开,而且也可以显示不同的商品,就此我们可以看出来,这个ajax加载下一页不过是一个纸老虎,根本没什么可怕的。我们将这个提取成正则表达式,另外 值得注意的是,由于我们第一页可能是没有page的,所以也需要考虑没有page参数的情况
6

http://list\\.showjoy\\.com/search/\\?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C(&page=\\d+)?

第三步:就是写内容页的抽取规则了,我们就抽取商品名称,评价数和成交数这三项数据吧,有人要问了,为啥不要价格呢。我只能说,too young too native,你打开商品页面的时候,有没有注意到价格的地方也一个快速的异步加载。考虑到咱们毕竟才第二课,而且刚刚还没那个ajax搞得虎躯一震,差一点把这节课改成第三课,所以咱们这里先降低点难度,下一课咱们用一节课的时间来探讨下这个价格该怎么提取。

根据前面课程教的方案,我们同样的方法,写出xpath:

标题:  //h3[contains(@class,"choose-hd")]评价: //div[contains(@class,"dtabs-hd")]/ul/li[2]成交记录://div[contains(@class,"dtabs-hd")]/ul/li[3]

通过xpath helper进行验证之后没有问题,这样我们可以组合代码得到下面的结果

var configs = {  domains: ["www.showjoy.com","list.showjoy.com","item.showjoy.com"],  scanUrls: ["http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C"],  contentUrlRegexes: ["http://item\\.showjoy\\.com/sku/\\d+\\.html"],  helperUrlRegexes: ["http://list\\.showjoy\\.com/search/\\?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C(\\&page=\\d+)?"],//可留空  fields: [  {  // 第一个抽取项  name: "title",  selector: "//h3[contains(@class,'choose-hd')]",//默认使用XPath  required: true //是否不能为空  },  {  // 第二个抽取项  name: "comment",  selector: "//div[contains(@class,'dtabs-hd')]/ul/li[2]",//使用正则的抽取规则  required: false //是否不能为空  },  {  // 第三个抽取项  name: "sales",  selector: "//div[contains(@class,'dtabs-hd')]/ul/li[3]",//使用正则的抽取规则  required: false //是否不能为空  }  ]
};  start(configs);

可以看到在domains里 我填入了三个域名,这里是一定要注意的,因为他的列表页和详情页的域名都不一致,因此需要把每一个域名都写进去。
好了,代码运行正常,但是启动任务之后发现,怎么第二页的内容没有采集到呢? 还有前面说的价格咱们也采集不到,到底还能不能愉快的玩耍了呢? 我们第三课就给大家讲讲如何解决ajax页面的url发现和ajax加载内容的提取。

对爬虫感兴趣的童鞋可以加qq群讨论:342953471。

手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫相关推荐

  1. 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 1

    系列教程 手把手教你写电商爬虫-第一课 找个软柿子捏捏 如果没有看过第一课的朋友,请先移步第一课,第一课讲了一些基础性的东西,通过软柿子"切糕王子"这个电商网站好好的练了一次手,相 ...

  2. 亿级流量电商详情页系统实战-25.亿级流量商品详情页的多级缓存架构介绍

    1.前言 很多人以为,有了redis缓存,就可以支持对高并发的业务场景了.其实做复杂的缓存,如支撑电商复杂的场景下的高并发的缓存,遇到的问题是非常非常之多,绝对不是说简单的访问一下redis就可以了. ...

  3. node.js -- 手把手教你搭建 电商平台

    一.项目开始前,开发环境:jquery,node.js,webpack打包.我们养成先在github上新建项目,再拉代码:git常见命令: 1,git clone <>        克隆 ...

  4. 记录一下手把手教您做电商网站

    http://www.imooc.com/learn/100 转载于:https://www.cnblogs.com/TF12138/p/4091373.html

  5. 手把手教你读财报----银行业---第二课

    会计资本 股本:股东投入的资本总额,股本=股份总数*票面价值(这个99.9%的股票票面价值都是1元) 其他权益工具:目前中国国内的其他权益工具只有优先股 优先股:如果企业经营一切正常,优先股就拿固定利 ...

  6. 实战案例,手把手教你构建电商用户画像 | 附代码

    导读:本文以真实案例,手把手教你搭建电商系统的用户画像. 先来看该电商用户画像用到的标签. 数据内容包括user_id(用户身份).item_id(商品).IDbehavior_type(用户行为类型 ...

  7. [原创]手把手教你写网络爬虫(2):迷你爬虫架构

    手把手教你写网络爬虫(2) 作者:拓海 (https://github.com/tuohai666) 摘要:从零开始写爬虫,初学者的速成指南! 封面: 介绍 大家好!回顾上一期,我们在介绍了爬虫的基本 ...

  8. 爬虫第二弹:千图网电商淘宝模板图片下载

    爬虫第二弹:千图网电商淘宝模板图片下载  一.功能分析: 1.下载千图网电商淘宝的所有模板图片要求是高清版本: 2.并按照主页面将图片归类文件夹.   二.思路分析: 1.利用scrapy构建scra ...

  9. python网络爬虫网易云音乐_手把手教你写网络爬虫(1):网易云音乐歌单

    大家好,<手把手教你写网络爬虫>连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序员和门外汉的注意.本文由浅入深的把爬虫技术和盘托出,为初学者提供一种轻 ...

最新文章

  1. react按需加载(getComponent优美写法),并指定输出模块名称解决缓存(getComponent与chunkFilename)...
  2. 大数据和人工智能的关系,超全解析
  3. Flink SQL Client注册Python UDF完整流程
  4. 【模拟】【递归】电子表格(jzoj 2127)
  5. ASP.NET Core 基于SignalR实时通讯的前后端分离技术
  6. linux删除系统环境变量,Linux系统添加、修改、删除PATH环境变量
  7. 计算机ip地址无法修改密码,手提电脑怎么修改无线网络的IP地址|无线网络怎么修改密码...
  8. 【经典算法】第一回:快速排序
  9. BAT等大厂十年研发经历,总结了12开发条经验(墙裂推荐)
  10. 文件间调用变量(extern,include)[转]
  11. 超级简单C语言进制转换代码
  12. 解决Win10系统下运行unity游戏闪退报错问题 包含 人类一败涂地 波西亚时光等
  13. php清除手机浏览器缓存,js清除浏览器缓存的几种方法
  14. [1] Instances as Queries
  15. java企业通用模块_[模板风格]WordPress企业主题Start通用响应式强大模块化wordpress-无...
  16. 公司app上架正规要求需要办理icp许可证
  17. 《控制论导论》读书:变异度-传输变异度
  18. 月薪2w运营人必备的120款运营神器
  19. 单选框与复选框数据回填
  20. 【它山之玉】关于年龄的焦虑的一些安慰

热门文章

  1. perf+火焰图 = 性能分析利器
  2. 多传感器融合之滤波(二)EKF
  3. 使用Netbeans创建java Web项目
  4. PHP对于浮点型的数据需要用不同的方法去解决
  5. VS2005创建CLR自定义触发器
  6. C语言的一个关键字——static
  7. 在C#.net中如何操作XML
  8. java程序ssh置顶_使用shell脚本启动远程(SSH)Java应用程序不会返回本地提示
  9. cheatengine找不到数值_找商网:百度爱采购与其他B2B平台有何不同,为何能够后来居上?...
  10. 广告点击率预测_精品案例|在线广告点击率预测