百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

前言

爬虫程序是DT (Data Technology,数据技术)收集信息的基础,程序员爬取目标网站的资料后,就可以分析和建立应用了。我们关心的是科技如何给大家带来实效,进而实现目标和理想,不能应用的技术称为魔术,只能用于表演。我们十分关注读者能否把握爬虫概念,所以相关的技术结合不同的实例讲解,希望能指导读者完成整个数据采集的流程。

Python是-一个简单、有效的语言,爬虫所需的获取、存储、整理等流程都可以使用Python 系统地实现。此外,绝大部分计算机也可以直接使用Python语言或简单地安装Python系统,相信读者一定 能轻松地把Python作为爬虫的主要技术。

动其心者,当具有大本大源

DT的核心是从信息的源头去理解和分析,以做出能打动对方的行动决策方案。由谷歌搜索到现在的大数据时代,爬虫技术的重要性和广泛性一直很突出。程序员理解了信息的获取、存储和整理各方面的基本关系,才有可能系统地收集和应用不同源头和千变万化的网站信息。

自强不息

互联网科技不断更新和进步,网站信息也随之不断改变。爬虫的乐趣在于如何一直高效率、持续不断地从日新月异的网站中获取信息。另外,程序员要不断学习新技术,自我提高,这样在爬虫的过程中才能够理解互联网的运作和结构。最后,感谢好友唐松给予我一.起创作这本书的机会,让我可以分享爬虫技术和当中的乐趣。

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

Python行业薪资

如何阅读?

使用Python 编写网络爬虫程序获取互联网上的大数据是当前的热门专题。

本书内容包括三部分:基础部分、进阶部分和项目实践部分。

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

Python爬虫的流程

基础部分(第1~6章)主要介绍爬虫的三个步骤(获取网页、解析网页和存储数据),并通过诸多示例的讲解,让读者从基础内容开始系统性地学习爬虫技术,并在实践中提升Python爬虫水平。

进阶部分(第7~12章)包括多线程的并发和并行爬虫、分布式爬虫、更换IP等,帮助读者进一步提升爬虫水平。

项目实践部分(第13~16 章)使用本书介绍的爬虫技术对几个真实的网站进行抓取,让读者能在读完本书后根据自己的需求写出爬虫程序无论是否有编程基础,只要是对爬虫技术感兴趣的读者,本书就能带领你从入门到进阶,再到实战,一步步了解爬虫,最终写出自己的爬虫程序。

接下来就跟小编一起进入爬虫的知识海洋吧。

基础部分

第一章:网络爬虫入门

1.1为什么要学习爬虫?

在数据量爆发式增长的互联网时代,网站与用户的沟通本质上是数据的交换:搜索引擎从数据库中提取搜索结果,将其展现在用户面前;电商将产品的描述、价格展现在网站上,以供买家选择心仪的产品,社交媒体在用户生态圈的自我交互下产生大量文本、图片和视频数据。这些数据如果得以分析利用,不仅能够帮助第一方企业(也就是拥有这些数据的企业)做出更好的决策,对于第三方企业也是有益的。

上面的例子仅为数据应用的冰山一角。近几年来,随着大数据分析的火热,毕竟有数据才能进行分析,网络爬虫技术已经成为大数据分析领域的第一一个环节。

对于这些公开数据的应用价值,我们可以使用KYC框架来理解,也就是Know Your Company (了解你的公司)、Know Your Competitor (了解你的竞争对手)、KnowYourCustomer(了解你的客户)。这是理解和进行简单描述性分析公开数据就可以带来的价值。进一步讲,通过机器学习和统计算法分析,在营销领域可以帮助企业做好4P (Product: 产品创新,Place: 智能选址,Price: 动态价格,Promotion: 数据驱动的营销活动) ;在金融领域,数据驱动的征信等应用会带来越来越大的价值。

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

简单爬虫架构

1.2 三个流程的技术实现

下面的技术实现方法都是使用Python 语言实现的,对于Java等其他语言并不涉及。

1.获取网页

获取网页的基础技术: request、 urllib 和selenium (模拟浏览器)。

获取网页的进阶技术:多进程多线程抓取、登录抓取、突破IP封禁和服务器抓取。

2.解析网页

解析网页的基础技术: re 正则表达式、BeautifulSoup 和lxml。

解析网页的进阶技术:解决中文乱码。

3.存储数据

存储数据的基础技术:存入txt文件和存入csv文件。

存储数据的进阶技术:存入MySQL数据库和存入MongoDB数据库。

对于上述技术不熟悉的读者也不必担心,本书将会对其中所有的技术进行讲解,力求做到深入浅出。

第二章:编写第一个网络爬虫

第三章:静态网页抓取

第四章:动态网页抓取

第五章:解析网页

第六章:数据存储

进阶部分

第七章:提升爬虫的速度

7.1多线程爬虫

多线程爬虫是以并发的方式执行的。也就是说,多个线程并不能真正的同时执行,而是通过进程的快速切换加快网络爬虫速度的。

Python本身的设计对多线程的执行有所限制。在Python设计之初,为了数据安全所做的决定设置有GIL (Global Interpreter Lock,全局解释器锁)。在Python中,一个线程的执行过程包括获取GIL、执行代码直到挂起和释放GIL。

例如,某个线程想要执行,必须先拿到GIL,我们可以把GIL看作“通行证”,并且在-一个Python进程中,GIL只有 一个。拿不到通行证的线程就不允许进入CPU执行。

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

多线程的执行方式

每次释放GIL锁,线程之间都会进行锁竞争,而切换线程会消耗资源。由于GIL锁的存在,Python里一个进程永远只能同时执行一一个线程(拿到GIL的线程才能执行),这就是在多核CPU.上Python的多线程效率不高的原因。

由于GIL的存在,多线程是不是就没用了呢?以网络爬虫来说,网络爬虫是I0密集型,多线程能够有效地提升效率,因为单线程下有I0操作会进行I0等待,所以会造成不必要的时间浪费,而开启多线程能在线程A等待时自动切换到线程B,可以不浪费CPU的资源,从而提升程序执行的效率。

Python的多线程对于I0密集型代码比较友好,网络爬虫能够在获取网页的过程中使用多线程,从而加快速度。

第八章:反爬虫问题

第九章:解决中文乱码

第十章:登录与验证码处理

第十一章:服务器采集

第十二章:分布式爬虫

项目实践部分

爬虫实践一:维基百科

维基百科是一个网络百科全书,在一般情况下允许用户编辑任何条目。当前维基百科由非营利组织维基媒体基金会负责营运。维基百科一词是由网站核心技术Wiki和具有百科全书之意的encyclopedia共同创造出来的新混合词Wikipedia.

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

Wikipedia词条的页面

本章将给出一个爬取维基百科的实践项目,所采用的爬虫技术包括以下4种:

  • 爬取网页:静态网页爬虫
  • 解析网页:正则表达式
  • 存储数据:存储至txt
  • 进阶新技术:深度优先的递归爬虫,广度优先的多线程爬虫

爬虫实践二:知乎Live

知乎是中文互联网一个非常大的知识社交平台。在知乎上,用户可以通过问答等交流方式获取知识。区别于百度知道等问答网站,知乎的回答往往非常深入,都是回答者精心写的,知乎上聚集了中国互联网科技、商业、文化等领域里最具创造力的人群,将高质量的内容通过人的节点形成规模的生产和分享,构建高价值人际关系网络。

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

知乎Live

本章为爬取知乎网站的实践项目,所采用的爬虫技术包括以下3种。

  • 爬取网页: 解析AJAX动态加载地址
  • 解析网页:提取JSON数据
  • 存储数据:存储至MongoDB数据库

爬虫实践三:百度地图API

百度地图是一款网络地图搜索服务。在百度地图里,用户可以查询街道、商场、楼盘的地理位置,也可以找到离你最近的餐馆、学校、银行、公园等。百度地图提供了丰富的API供开发者调用,我们可以免费地获取各类地点的具体信息。

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

百度API

本章为使用百度API获取数据的实践项目,所采用的技术包括:

  • 爬取网页: 使用Requests请求百度地图API地址
  • 解析网页:提取json数据
  • 存储数据:存储至MySQL数据库

爬虫实践四:大众点评

我们平时去餐厅吃饭之前,总喜欢先在网上找找餐厅的评价,然后再决定去哪家餐厅。在互联网餐厅点评网站中,大众点评是知名的第三方消费点评网站,也是一个个本地生活信息及交易平台。因此,在大众点评上有很多商户的信息和用户点评数据。

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

大众点评

本章为爬取大众点评数据的实践项目,所采用的技术包括:

  • 使用Selenium爬取网站
  • 使用BeautifulSoup解析网页
  • 数据存储至CSV文件

总的来说Python爬虫是一门很实用但是也不枯燥的技术,由于本书分的细节太多,小编就不一一打出来了,想要获取《Python爬虫从入门到实践》的小伙伴可以转发+关注后私信小编【学习】来得到获取方式吧~~~

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

百度大牛带你学习Python爬取,解析网页、存储数据的三大爬虫技术

猜你喜欢

转载自blog.csdn.net/python8989/article/details/106379642