目录
导读
通过本篇文章的阅读,你将简单了解网络爬虫的概念,网络爬虫可以做什么,实现网络爬虫有哪些相关技术,文章最后将给出一些学习建议。
一、网络爬虫是什么?
网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。对于网络爬虫的概念的介绍在网上文章、视频或书籍中并不少见,通俗理解就是利用一段计算机程序模拟人浏览网络获取信息的过程,当然爬虫可处理网络信息的体量要大的多、效率也高的多。网络爬虫技术的流行主要是基于网络技术的发展,更是各行各业对数据价值的重视。例如金融公司在办理个人信贷时如何评估个人的信用?投资人如何预测一部电影的票房收入?一家火锅连锁品牌如何在城市中选址?等等,这些问题都不是简单问题,而是重要决策,而这背后都是以数据为支撑。
二、数据如何产生?
在《大数据分析的“数据来源”有哪些?》(简书)文中提到数据来源可分为“交易数据、移动通信数据、人为数据、机器和传感器数据”,在《大数据的主要来源》(铭说大数据)文中提到数据来源可分为“信息管理系统、网络信息系统、物联网系统、实验系统等”,在《数据主要有哪三大来源?》(知乎)文中提到数据来源可分为“大量人群产生的海量数据、企业应用产生的数据、ipipgo机器产生的数据”。他们都从不同角度对数据来源进行了分类,都有其独到之处,笔者在其基础上归纳为以下三种数据来源。
一是人类活动数据。例如一个新生儿的出生日期、性别、血型,在淘宝网上一笔订单数据,一艘远洋货轮的载货数据和离到港时间等。这些数据是由于人类活动自动生产、被记录的数据。
百度指数中的数据分析
二是人为数据。人为数据包括电子邮件、文档、图片、音频、视频,以及通过微信、博客、推特、维基、脸书、Linkedin等社交媒体产生的数据流。
三是机器和传感器数据。来自感应器、量表和其他设施的数据、定位/GPS系统数据等。这包括功能设备创建或生成的数据,例如智能温度控制器、智能电表、工厂机器和连接互联网的家用电器的数据。
三、有哪些数据获取途径?
对于网络爬虫来说,显而易见数据来源于网络,可能是一整张网页,可能是一张网页中的某些数据,也可能是应用或App中的数据。获取数据的途径大致分为以下几类:
1.政府、统计机构或企业在网页中提供的统计数据或数据集,一般为excel、csv格式的文件。
数据集下载网站
2.网页中的文档、图片、音频、视频及评论信息等。
3.企业网站的商品数据、用户行为数据,更深层次的包含用户个人信息等,例如用户的地域、年龄、职业、收入等。
某宝中的商品信息
4.服务器后台传输数据。
四、爬虫可以做什么?
1.收集数据
爬虫可以用来收集数据,这是爬虫最直接、最常用的功能,由于爬虫是一种程序,它的运行速度极快,在短时间可以收集大量网络上的数据。
2.搜索引擎
百度、谷歌等搜索引擎本身是一种大型复杂的网络爬虫。例如百度爬虫也称为百度蜘蛛,它每天的工作任务是在各个网站中爬行,抓取无数的网站和内容,将他们保存下来进行评估和审核,优质的内容会被收录并建立关键词索引,这样用户就可以在百度中通过输入关键词找到该网站。而其中的百度快照就是百度蜘蛛爬取并保存下来的页面。
3.广告过滤
在浏览网页信息时,总会看到很多广告信息,这时可以将广告网址信息保存下来,然后自动过滤掉这些广告。
4.模拟脚本
将需要爬取的网页列表、需要填入的用户信息和验证码、需要实现的动态点击、页面滚动、页面确认及输入行为通过代码封装成具有特定功能的程序。
五、网络爬虫的分类
网络爬虫按照系统结构和功能分为通用爬虫、聚焦爬虫、增量爬虫、深层爬虫。
1.通用爬虫
通用爬虫又称为全网爬虫,它将爬取对象从一些种子URL扩充到整个网络,主要用途是为门户站点搜索引擎和大型Web服务提供商采集数据,例如百度爬虫就是一种通用型爬虫。
百度首页
2.聚焦爬虫
聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择地访问万维网上的网页与相关的连接,获取所需要的信息。与通用爬虫不同,聚焦爬虫并不追求大的覆盖,而将目标定位抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。
3.增量爬虫
增量爬虫是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。由于不会重复爬取没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减少时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。例如爬取最新的评论信息、最新的招聘数据就可以用到增量爬虫。
4.深层爬虫
深层爬虫的目的是爬取哪些不能通过静态链接获取的、隐藏在搜索表单背后数据的爬虫,这些数据只有用户提交一些数据才能获得的Web页面。例如用户登陆才能访问的页面。
六、爬虫开发中有哪些技术?
以下概括了网络爬虫学习的路径,也覆盖了部分相关技术。
1.网页链接:urllib、requests、多线程。
2.网页内容解析:正则表达式、XPath、BeautifulSoup4。
3.数据存储:MongoDB、Redis。
4.异步加载:AJAX、JSON、伪造请求头、模拟浏览器。
5.爬虫自动化:模拟登陆、验证码识别。
6.抓包与中间人。
7.爬虫框架:Scrapy、Pyspider、Portia。
七、开发环境准备
1.安装python
2.安装pycharm
3.在pycharm中创建名为的spider工程
以上步骤如果有疑问,可参考“Python及Pycharm的安装与简单配置”https://blog.csdn.net/qq_40407729/article/details/109144874
八、学习建议
本网络爬虫教程是以python语言作为基础,如果您从未接触过编程,建议您先学习python编程基础(可参考作者的《Python编程入门》专栏,其中包含详实的理论加实操教程),如果您已经学习过其他编程语言,那么相信您只需要很短的时间也可以掌握python这门编程语言。
本专栏是大学的一门网络爬虫技术配套课程,除了知识点外还将配套相关项目练习与答案(答案一般附在之后的第二篇文章中),如果您计划一步一步的学习网络爬虫这门技术,可以跟着本课程边学边练。如果您在学习过程中有任何疑问,非常欢迎您能来这里交流探讨。
作者限于水平有限,恐有不当之处,欢迎各位前辈、技术达人指正、交流。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试