Python爬虫
可选择的IDE和编辑器
- IDE:PyCharm、Spyder、Visual Studio等
- 编辑器:Vim、Sublime Text、Atom等
Python3 是大势所趋, python2 正在逐步淘汰 毋庸置疑,我们选择python3
为什么要做网络爬虫?
首先请问:都说现在是"大数据时代",那数据从何而来?
- 企业产生的数据:百度搜索指数、腾讯公司业绩数据、阿里巴巴集团财务及运营数据、新浪微博微指数 等...
大型互联网公司拥有海量用户,有天然的数据积累优势,还有一些有数据意识的中小型企业,也开始积累自己的数据。
- 数据平台购买数据:数据堂、国云数据市场、贵阳大数据交易所 等...
在各个数据交易平台上购买各行各业各种类型的数据,根据数据信息、获取难易程度的不同,价格也会有所不同。 数据堂、国云数据市场、贵阳大数据交易所
- 政府/机构公开的数据:中华人民共和国国家统计局数据、中国人民银行调查统计、世界银行公开数据、联合国数据、纳斯达克、新浪财经美股实时行情 等...
通常都是各地征服统计上报,或者是行业内专业的网站、机构等提供。
- 数据管理咨询公司:麦肯锡、埃森哲、尼尔森、中国互联网络信息中心、艾瑞咨询 等...
>
通常这样的公司有很庞大的数据团队,一般通过市场调研、问卷调查、固定的样本检测、与各行各业的其他公司合作、专家对话来获取数据,并根据客户需求制定商业解决方案。
- 爬取网络数据:
如果数据市场上没有需要的数据,或者价格太高不愿意购买,那么可以利用爬虫技术,抓取网站上的数据。
网络爬虫是什么?
爬虫的更多用途
- 12306抢票
- 网站上的投票
- 短信轰炸
关于Python网络爬虫,我们需要学习的有:
1. 对HTML页面的内容抓取(数据抓取)
2. 对HTML页面的数据提取(数据提取)
3. Scrapy框架以及scrapy-redis分布式策略(第三方框架)
4. 爬虫(Spider)、反爬虫(Anti-Spider)、反反爬虫(Anti-Anti-Spider)之间的斗争....
爬虫基础
我们可以把互联网比作一张大网,而爬虫即(网络爬虫)便是在网上爬行了蜘蛛。把网的节点比作个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就以被抓取下来了
爬虫概述
简单来说,爬虫就是获取网页并提取和保存信息的自动化程序
1.获取网页
爬虫首先要做的工作就是获取网页,这里就是获取网页的源代码。源代码里包含了网页的部分有用信息,所以只要把源代码获取下来,就可以从中提取想要的信息了。
之前讲过请求和响应的概念,向网站的服务器发送一个请求,返回的响应体便是网页源代码。所以,最关键的部分就是构造一个请求并发送给服务器,然后接收到响应并将其解析出来,那么这个流程怎样实现呢?
Python提供了许多库来帮助我们实现这个操作,如urlib.requests 等我们可以用这些库来帮助我们实现HTTP请求操作,请求和响应都可以用类库提供的数据结构来表示,得到响应之后只需要解析数据结构中的Body部分即可,即得到网页的源代码,这样我们可以用程序来实现获取网页的过程了。
2 提取信息
获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数据。首先,最通用的方法便是采用正则表达式提取,这是一个万能的方法,但是在构造正则表达式时比较复杂且容易出错。
另外,由于网页的结构有一定的规则,所以还有一些根据网页节点属性、CSS选择器或XPath来提取网页信息的库,如Beauiful Soup、pyquery、lxml 等。使用这些库,我们可以高效快速地从中提取网页信息,如节点的属性、文本值等。
提取信息是爬虫非常重要的部分,它可以使杂乱的数据变得条理清晰,以便我们后续处理和分析数据
3.保存数据
提取信息后,我们一般会将提取到的数据保存到某处以便后续使用。这里保存形式有多种多样,可以简单保存为TXT 文本或JSON文本,也可以保存到数据库,如MySQL、MongoDB和redis等
4.自动化程序
说自动化程序,意思是说爬虫可以代替人来完成这些操作。首先,我们手工当然可以提取这些信息,但是当量特别大或者想快速获取大量数据的话,肯定还是要借助程序。爬虫就是代替我们来完成这份爬取工作的自动化程序,它可以在抓取过程中进行各种异常处理、错误重试等操作,确保爬取持续高效地运行。
5.爬虫分类
根据使用场景,网络爬虫又可分为 通用爬虫 和 聚焦爬虫 两种.
- 通用网络爬虫,是捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
- 聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。