`
游牧民族
  • 浏览: 8356 次
博客专栏
0e19309f-3048-3b23-8de5-1a8a92dd847a
爬虫开发教程
浏览量: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); 

 

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

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

 

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

1
0
分享到:
评论

相关推荐

    手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取

    这是一个非常实用的教程,因为AJAX技术广泛应用于现代网页中,而动态内容加载也是电商网站常见的技术之一。 首先,我们需要了解AJAX(Asynchronous JavaScript and XML)技术,它是一种能够在不重新加载整个网页的...

    手把手教你学DSP--基于TMS320C55x光盘 + 书(高清).7z

    手把手教你学DSP--基于TMS320C55x光盘 (包括源代码 电路图PDF,DXP) + 基于TMS320C55x.PDF。比较适合刚入门,是一本DSP入门的好书。

    手把手教你学51单片机-C语言版

    资源名称:手把手教你学51单片机-C语言版资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    手把手教你学DSP--TMS320C281X光盘资料

    "手把手教你学DSP--TMS320C281X光盘资料" 这个标题表明这是一个教学资源,专注于数字信号处理(DSP)领域,特别是针对Texas Instruments(TI)的TMS320C281X系列DSP芯片。"手把手教你学"意味着这份资料提供了详尽的...

    手把手教你学单片机--(如何学习单片机)

    手把手教你学单片机--(如何学习单片机)经典有用的资料

    手把手教你写 SQL Join 联接 -

    手把手教你写 SQL Join 联接 手把手教你写 SQL Join 联接 - Defonds 的专栏 - CSDN博客手把手教你写 SQL Join 联接 - Defonds 的专栏 - CSDN博客

    手把手教你写python爬虫

    本教程“手把手教你写Python爬虫”将引导你逐步掌握这一技能。Python因其语法简洁、库资源丰富,成为爬虫开发的首选语言。下面,我们将深入探讨Python爬虫的核心概念、常用库以及实践技巧。 首先,你需要了解网络...

    手把手教你学DSP--基于TMS320C55x光盘 含电路图+代码

    手把手教你学DSP--基于TMS320C55x光盘 含电路图+代码 陈泰红 出 版 社:北京航空航天大学出版社 本书(作者陈泰红、任胜杰、魏宇)以TMS320C55x系列高性能低功耗DSP为主,主要介绍了以数字信号处理器(DSP)为核心的...

    手把手教你学DSP--TMS320F28335

    扫描版,全书454页完整版,带书签,虽是扫描版但足够清晰,不影响阅读

    C# SuperSocket 手把手教你入门 傻瓜教程-4(创建一个最简单的服务器和多客户端双向通信程序)

    最简单的服务器和多客户端双向通信程序,压缩包内有SocketTool.exe程序,方便使用测试服务器和客户端进行通信。教程参见https://blog.csdn.net/ba_wang_mao/article/details/115672920

    手把手教你学51单片机-资源

    《手把手教你学51单片机》是宋雪松先生编写的一本深入浅出的单片机学习教程,特别适合初学者入门。51单片机是微控制器领域非常经典的一款芯片,由Intel公司推出,因其8051内核而得名,现在由许多厂商如Atmel、...

    手把手教你学DSP:基于TMS320F28335

    手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F...

    《手把手教你学DSP-基于TMS320X281x》配套资料

    《手把手教你学DSP-基于TMS320X281x》配套资料主要为学习DSP(数字信号处理)技术提供了丰富的资源,这些资源聚焦于德州仪器(Texas Instruments,简称TI)推出的TMS320X281x系列DSP芯片。这些芯片广泛应用于需要...

    手把手教你写Python爬虫

    本教程将深入浅出地教你如何使用Python编写爬虫,让你从零基础快速入门。 首先,我们需要了解Python爬虫的基础知识。爬虫主要分为三个步骤:请求网页、解析网页和存储数据。Python中的`requests`库可以用来发送HTTP...

    手把手教你学dsp--TMS320C55X

    《手把手教你学DSP--TMS320C55X》是一本深入浅出的数字信号处理(DSP)教程,特别关注TI公司的TMS320C55X系列芯片。这本书旨在帮助读者理解DSP的基本概念,并通过实践操作学习如何在TMS320C55X平台上进行开发工作。...

    手把手教你学51单片机C语言版PDF

    《手把手教你学51单片机C语言版》是一本专为初学者设计的教程,旨在帮助读者从零开始掌握51系列单片机的编程与应用。这本书由权威的电子技术教育平台www.kingst.org提供,是学习单片机C语言编程的宝贵资源。下面将...

Global site tag (gtag.js) - Google Analytics