文档章节

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

游牧民族
 游牧民族
发布于 2016/05/12 16:42
字数 1442
阅读 300
收藏 7
点赞 2
评论 0

工具要求:教程中主要使用到了 1、神箭手云爬虫框架  这个是爬虫的基础,2、Chrome浏览器和Chrome的插件XpathHelper 这个用来测试Xpath写的是否正确

基础知识:本教程中主要用到了一些基础的js和xpath语法,如果对这两种语言不熟悉,可以提前先学习下,都很简单

 

教程正式开始,现在电商网站很多,牛逼哄哄的淘宝京东,新晋贵族唯品会聚美优品 海淘的美丽说higo网易惠惠等等,作为新手,上来打boss的结果必定是灰屏回家,所以 我们现在新手村附近找个小弟练练级吧。

找小弟也要有找小弟的办法,我们就去it橘子上看看有没有什么新的电商公司试试,找了一圈,就相中了这个切糕王子,名字霸气,内容简单,非常适合我们这种新手练手,掌握一下基本技能。

那我们就正式开始,首先,我们打开切糕王子的商品列表页

http://www.qiegaowz.com/product/Default.html

只有5款商品,果然是互联网思维,爆品逻辑。顿时让我们有种用大炮大蚊子的赶脚,写个爬虫的时间,不如手动复制了。不过,谁让我们是程序员呢?手动复制这么low的事情说出去都丢不起这个人。

开始前先给大家普及一下爬虫的基本步骤

1.选定入口url,也叫种子url,就是让爬虫从哪个页面开始爬

2.区分哪些是内容页面,也就是我们需要抽取数据的页面,哪些是中间页,就是连接其他页面,没有我们需要的数据的页面

3.对内容页写抽取规则

4.开始爬虫

 

好了,那我们就开始了

第一步来:这个网站的入口url很简单,就一个页面

http://www.qiegaowz.com/product/Default.html 就是他了,也没别人

 

第二步:内容页面就是那5个商品的页面

http://www.qiegaowz.com/product/5ee97997-1700-4d19-b93a-6bd7c930fefe.html

http://www.qiegaowz.com/product/ccdf1d03-58da-48a9-bfd2-d9c403b56c98.html

http://www.qiegaowz.com/product/1f44feec-751a-4656-9e42-ec1cb7d8dee6.html

http://www.qiegaowz.com/product/83106246-d38e-42da-a0a4-2289f699b066.html

http://www.qiegaowz.com/product/a723b3cc-91f0-495f-b7b8-792b4470a6e6.html

神箭手框架里是将内容页用正则表达式来限制的,那没这几个页面统一一个正则的话就是

http://www\\.qiegaowz\\.com/product/[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}\\.html

添加了两个\是因为这句话将被写到字符串中,所以需要对\再进行一次转义,不理解的话也没关系,记得这么做就可以了

什么?有人觉得这个太难了,那我们可以再简单一点

http://www\\.qiegaowz\\.com/product/.{36}\\.html

特别提醒,在正则表达式中,"."和"?"这个字符是需要转义的,这些千万不能写错了。

中间页的话,就是http://www.qiegaowz.com/product/Default.html,转换成正则的格式

http://www\\.qiegaowz\\.com/product/Default\\.html

 

第三步:我们打开其中一个商品的页面

发现整个页面没啥内容,我们就勉强来分成三个部分吧,分别是 缩略图,商品名称,内容

先看缩略图:我们用chrome打开,并打开开发者工具:

根据html的层级结构,主要找class和ID的节点,我们可以看到我们这个图片的自己的标签是img标签,没有什么特别的属性,那没看他的父标签,

是<div class="showpic"> 我们来查一下发现这个showpic再整个页面里面出现了1次,那么用这个showpic的class就可以直接定位到这个图片,xpath的写法就是:

//div[contains(@class ,'showpic')]/img/@src

简单解释下xpath,开始的两个//代表着从根目录开始不确定过了多少级,如果是单/则代表是一级层级关系,class属性的选择我们通常使用 contains是为了防止一个标签有多个class,最后因为我们要获取的是图片的地址,所以最终我们要选取到src属性,好了 我们写完之后 用xpathhelper检测一下对不对

没问题,另外两个抽取项在这里就不详细解释了,方式大同小异,直接放结果:

//div[contains(@class ,'showpic')]/img/@src

//div[contains(@class ,'showproduct')]/h1

//div[contains(@class,'shownewdes')]

 

OK,那么到这里,我们爬虫的准备工作已经做完了,根据神箭手框架的文档,我们将我们的准备好的代码组装一下如下,

    var configs = {  
        domains: ["www.qiegaowz.com"],  
        scanUrls: ["http://www.qiegaowz.com/product/Default.html"],  
        contentUrlRegexes: ["http://www\\.qiegaowz\\.com/product/.{36}\\.html"],  
        helpUrlRegexes:["http://www\\.qiegaowz\\.com/product/Default\\.html"],  
        fields: [  
            {  
                // 商品缩略图  
                name: "thumbnail",  
                selector: "//div[contains(@class,'showpic')]/img/@src",  
            },  
            {  
                // 商品标题  
                name: "title",  
                selector: "//div[contains(@class,'showproduct')]/h1",  
            },  
            {  
                // 商品内容  
                name: "content",  
                selector: "//div[contains(@class,'shownewdes')]",  
            }  
        ]  
    };  
      
    start(configs);  

 

到这里就大功告成了,我们将代码复制神箭手后台代码中,保存并测试下,顺利爬到数据。

不过还有一些遗留问题,如商品内容中有一些我们不需要的内容,如何去掉,这个我们可以在后面的教程中详细解释。

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

© 著作权归作者所有

共有 人打赏支持
游牧民族
粉丝 7
博文 9
码字总数 14295
作品 0
杭州
手把手教你写电商爬虫-第五课 京东商品评论爬虫 一起来对付反爬虫

系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取 手把手教...

游牧民族
2016/05/16
204
0
互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)

相关教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取 手把手教...

游牧民族
2016/05/21
255
0
手把手教你写电商爬虫-第四课 淘宝网商品爬虫自动JS渲染

系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取 老规矩,...

游牧民族
2016/05/16
140
0
手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫

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

游牧民族
2016/05/12
166
0
手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取

系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 看完两篇,相信大家已经从开始的小菜鸟晋升为中级菜鸟了,好了,那我们就...

游牧民族
2016/05/12
176
0
FFMPEG系列课程(一)打开视频解码器

测试环境:windows10 开发工具:VS2013 从今天开始准备些FFmpeg的系列教程,今天是第一课我们研究下打开视频文件和视频解码器。演示环境在windows上,在linux上代码也是一样。 windows上可以...

夏曹俊
2016/12/27
0
0
互联网金融爬虫怎么写-第四课 雪球网股票爬虫(单页面多数据)

Previous on 系列教程: 互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门) 互联网金融爬虫怎么写-第二课 雪球网股票爬虫(正则表达式入门) 互联网金融爬虫怎么写-第三课 雪球网股票...

游牧民族
2016/07/29
175
0
手把手教你写网络爬虫(1):网易云音乐歌单

原文出处:拓海 大家好,《手把手教你写网络爬虫》连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序员和门外汉的注意。本文由浅入深的把爬虫技术和...

拓海
04/27
0
0
手把手教你 Python挖掘用户评论典型意见并自动生产报告

用户体验的工作可以说是用户需求和用户认知的分析。而消费者的声音是其中很重要的一环,它包含了用户对产品的评论,不管是好的坏的,都将对我们产品的改进和迭代有帮助。另外任何事情都要考虑...

sfM06sqVW55DFt1
2017/11/20
0
0
互联网金融爬虫怎么写-第三课 雪球网股票爬虫(ajax分析)

大家好啊,话说好久没有出来活动了,组织上安排写代码写了很久,终于又被放出来写教程了,感谢大家一直的支持和厚爱,我会一如既往的帮助大家完成爬虫工程师从入门到放弃的升华。 好,Previ...

游牧民族
2016/07/27
156
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Hbase增删查改工具类

package cn.hljmobile.tagcloud.service.data.repository;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util......

gulf
2分钟前
0
0
详解机器学习中的梯度消失、爆炸原因及其解决方法

前言 本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案。本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆...

tantexian
3分钟前
0
0
JavaMail 发送邮件

参考 https://www.cnblogs.com/xdp-gacl/p/4216311.html 发送html格式邮件 package com.example.stumgr;import java.util.Properties;import javax.mail.Message;import javax.mail......

阿豪boy
4分钟前
0
0
Mongodb安装教程

MongoDB是一个基于分布式文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bso...

木筏笔歆
5分钟前
0
0
Hadoop之YARN命令

概述 YARN命令是调用bin/yarn脚本文件,如果运行yarn脚本没有带任何参数,则会打印yarn所有命令的描述。 使用: yarn [--config confdir] COMMAND [--loglevel loglevel] [GENERIC_OPTIONS] [...

舒运
6分钟前
0
0
个推数据统计产品(个数)iOS集成实践

最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据。这次我们尝试使用的是个推(之前专门做消息推送的)旗下新推出的产品“个数·应用统计”,根据官方的说法,个推的数...

个推
7分钟前
0
0
Git 修改提交的用户名和邮箱名字

在通过git提交代码时,发现提交的用户名是自己mac的账户名,想要修改为其他名字和邮箱。 首先可以通过以下命令查看当前配置下的信息,包括用户名和邮箱: > git config --list 针对单项目的相...

edwardGe
11分钟前
0
0
Object.defineProperty()

Object.defineProperty(obj, props)方法直接在一个对象上定义新的属性或修改现有属性,并返回该对象。 obj 在其上定义或修改属性的对象 props 要定义其可枚举属性或修改的属性描述符的对象 ...

litCabbage
12分钟前
0
0
JEESZ分布式框架--单点登录集成方案(三)

多项目集成单点登录配置 当sso验证完成之后,客户端系统需要接收sso系统返回的结果时,需要定义一个过滤器获取返回结果,然后针对返回结果做相关处理.如果不需要做处理时,此处Filter也可以不...

明理萝
12分钟前
0
1
plisteditor 查看ipa包名及其它信息

1.下载ipa安装包 2.用rar等工具打开 3.将iTunesMetadata.plist文件解压出来 4.用plist Editor 工具打开 或http://www.atool.org/plist_reader.php在线反编译工具 5.在其中中找到softwareVer...

xiaogg
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部