网络爬虫爬取京东商品数据:螺蛳粉

一、什么是网络爬虫

1.爬虫简介

网络爬虫 ( Web Crawler) 又称网络蜘蛛、网络机器人它是一种按照一定规则,自动浏览万维网的程序或脚本。通俗地讲,网络爬虫就是一个模拟真人浏览万维网行为的程序这个程序可以代替真人自动请求万维网,并接收从万维网返回的数据。与真人浏览万维网相比,网络爬虫能够浏览的信息量更大,效率也更高。其主要功能是按照一定的规则,自动地抓取互联网上的信息,并将这些信息存储在本地或者数据库中,以供后续的数据处理和分析。网络爬虫通常被用于搜索引擎、数据挖掘、信息监控等领域。我们可以使用网络爬虫对数据信息进行自动采集,比如应用于搜索引擎中对站点进行爬取收录,应用于数据分析与挖掘中对数据进行采集,应用于金融分析中对金融数据进行采集,除此之外,还可以将网络爬虫应用于舆情监测与分析、目标客户数据的收集等各个领域。

2.爬虫类型
  • 通用网络爬虫:通用网络爬虫 ( General Purpose Web Crawler ) 又称全网爬虫 ( Scalable Web Crawler ) ,是指访问全互联网资源的网络爬虫。通用网络爬虫是“互联网时代”早期出现的传统网络爬虫,它是搜索引擎 (如百度、谷歌、雅虎等) 抓取系统的重要组成部分,主要用于将互联网中的网页下载到本地,形成一个互联网内容的镜像备份。
  • 聚焦网络爬虫:聚焦网络爬虫 (Focused Crawler ) 又称主题网络爬虫( Topical Crawler ),是指有选择性地访问那些与预定主题相关网页的网络爬虫,它根据预先定义好的目标,有选择性地访问与目标主题相关的网页,获取所需要的数据与通用网络爬虫相比,聚焦网络爬虫只需要访问与预定主题相关的网页,这不仅减少了访问和保存的页面数量,而且提高了网页的更新速度,可见,聚焦网络爬虫在一定程度度节省了网络资源,能满足一些特定人群采集特定领域数据的需求。
  • 增量式网络爬虫:增量式网络爬虫 (Incremental Web Crawler) 是指对已下载的网页采取增量式更新,只抓取新产生或者已经发生变化的网页的网络爬虫。
  • 增量式网络爬虫:只会抓取新产生的或内容变化的网页,并不会重新抓取内容未发生变化的网页,这样可以有效地减少网页的下载量,减少访问时间和存储空间的耗费,但是增加了网页抓取算法的复杂度和实现难度。
  • 深层网络爬虫:深层网络爬虫 ( Deep Web Crawler) 是指抓取深层网页的网络爬虫,它要抓取的网页层次比较深,需要通过定的附加策略才能够自动抓取,实现难度较大。
3.爬虫命名组件

1.爬虫调度器(Scheduler):负责管理整个爬虫的调度流程,包括URL的管理和调度等。

2.网页下载器(Downloader):负责下载网页内容,可以使用Python中的requests库或者Scrapy框架中的下载器等。

3.网页解析器(Parser):负责解析网页内容,提取出需要的信息,可以使用Python中的BeautifulSoup库或者Scrapy框架中的解析器等。

4.数据存储器(Pipeline):负责将解析出来的数据存储到数据库或者文件中,可以使用Python中的MySQLdb库或者Scrapy框架中的数据存储器等。


二、网络爬虫的应用场景

随着互联网信息的“爆炸”,网络爬虫渐渐为人们所熟知,并被应用到了社会生活的众多领域。作为一种自动采集网页数据的技术,很多人其实并不清楚网络爬虫具体能应用到什么场景。事实上,大多数依赖数据支撑的应用场景都离不开网络爬虫,包括搜索引擎、舆情分析与监测、聚合平台、出行类软件等。

1.搜索引擎
搜索引擎是通用网络爬虫最重要的应用场景之一,它会将网络爬虫作为最基础的部分一一互联网信息的采集器,让网络爬虫自动到互联网中抓取数据。例如,谷歌、百度、必应等搜索引擎都是利用网络爬虫技术从互联网上采集海量的数据。

2.舆情分析与检测
政府或企业通过网络爬虫技术自动采集论坛评论、在线博客新闻媒体或微博等网站中的海量数据,采用数据挖掘的相关方法(如词频统计、文本情感计算、主题识别等)发掘舆情热点,跟踪目标话题,并根据一定的标准采取相应的舆情控制与引导措施。例如,百度热点排行榜、微博热搜排行榜。

3.聚合平台
如今出现的很多聚合平台,如返利网、慢慢买等,也是网络爬虫技术的常见的应用场景,这些平台就是运用网络爬虫技术对一些电商平台上的商品信息进行采集,将所有的商品信息放到自己的平台上展示,并提供横向数据的比较,帮助用户寻找实惠的商品价格。例如,用户在慢慢买平台搜索华为智能手表后,平台上展示了很多款华为智能手表的价格分析及价格走势等信息。

4.出行类软件
出行类软件,比如飞猪、携程、去哪儿等,也是网络爬虫应用比较多的场景。这类应用运用网络爬虫技术不断地访问交通出行的官方售票网站刷新余票,一旦发现有新的余票便会通知用户付款买票。不过,官方售票网站并不欢迎网络爬虫的这种行为,因为高频率地访问网页极易造成网站出现瘫痪的情况。

三、爬取京东商品数据——螺蛳粉

1.登录京东:

京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!

搜索商品“螺蛳粉”,完成螺蛳粉商品数据的爬取工作。

2.爬取当前页面

(1)爬取页面html内容

(2)匹配商品标题数据

        由于标题文本在html中标签结构比较复杂,整个标题内容被font标签无规则地分为了多段,我们分两步来匹配标题内容:

        第一步,截取包含标签在内的所有标题内容。

        第二步,将font这类标签替换为空字符。

(3)匹配商品价格

(4)匹配评价数量

(5)生成表格对象

(6)封装函数

3.爬取多页数据

(1)循环爬取多个网页的商品内容

(2)借助AI工具来分析不同商品页url的查询参数规律

(3)编写自动爬取下一页商品数据的函数

五、网络爬虫的工作原理

通用网络爬虫的采集目标是整个互联网上的所有网页,它会从一个或多个初始URL开始,获取初始URL对应的网页数据,并不断从该网页数据中抽取新的 URL放到队列中,直至满足一定的条件后停止。

(1)获取初始 URL。既可以由用户指定,也可以由待采集的初始网页指定。 https://www.baidu.com/
(2)抓取页面,并获得新 URL。根据初始URL抓取对应的网页之后将该网页存储到原始网页数据库中,并且在抓取网页的同时对网页内容进行解析,并从中提取出新 URL。
(3)将新 URL放入URL队列。有了新URL之后,我们需要将新URL放入URL队列中。
(4)读取新URL。从URL队列中读取新URL,并根据该 URL获取对应网页数据,同时从新网页中抽取新的URL。
(5)是否满足停止条件。若网络爬虫满足设置的停止条件,则停止采集;若网络爬虫没有满足设置的停止条件,则继续根据新 URL抓取对应的网页,并重复步骤 (2) ~ (5).

六、网络爬虫爬取网页的流程

  • 选择一些网页,将这些网页的链接作为种子URL放入待抓取URL队列中。
  • 从待抓取URL队列中依次读取URL。
  • 过DNS解析URL,把URL地址转换为网站服务器所对应的IP地址
  • 将IP地址和网页相对路径名称交给网页下载器,网页下载器负责网页内容的下载。
  • 网页下载器将相应网页的内容下载到本地。
  • 将下载到本地的网页存储到页面库中,同时将使用过的URL放入到已抓取的 URL队列中,避免重复抓取。
  • 对于刚下载的网页中抽取出所包含的 URL信息。
  • 在已抓取URL队列中检查抽取的 URL是否被下载过。如果它还未被下载过,则将这个 URL放入待抓取 URL 队列中。如此重复 (2)(8),直到待抓取URL队列为空。

七、结语

以上就是我的学习爬取单页以及多页的学习心得,欢迎大家阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值