Python是数据分析的语言,而网络中的数据和信息很多,如何从中获取需要的数据和信息呢?简单、直接的方法就是用爬虫技术来解决。本书是一本教初学者学习如何爬取网络数据和信息的入门读物。书中不仅有Python的相关内容,而且还有数据处理和数据挖掘等方面的内容。本书内容非常实用,讲解时穿插了22个爬虫实战案例,可以大大提高读者的实际动手能力。本书共分12章,核心主题包括Python零基础语法入门、爬虫原理和网页构造、我的第壹个爬虫程序、正则表达式、Lxml库与Xpath语法、使用API、数据库存储、多进程爬虫、异步加载、表单交互与模拟登录、Selenium模拟浏览器、Scrapy爬虫框架。此外,书中通过一些典型爬虫案例,讲解了有经纬信息的地图图表和词云的制作方法,让读者体验数据背后的乐趣。本书适合爬虫技术初学者、爱好者及高等院校的相关学生,也适合数据爬虫工程师作为参考读物,同时也适合各大Python数据分析的培训机构作为教材使用。
详解网络爬虫的原理、工具、框架和方法,内容新,实战案例多
详解从简单网页到异步加载网页,从简单存储到数据库存储,从简单爬虫到框架爬虫等技术
22个网络爬虫综合实战案例、30个网站信息提取、2500余行代码
详解爬虫的3大方法:正则表达式、BeautifulSoup 4库和Lxml库
详解爬取数据的4大存储方式:TXT、CSV、MongoDB和MySQL
详解Scrapy爬虫框架的安装、项目创建、文件使用及爬取数据的存储
随着Internet的飞速发展,互联网中每天都会产生大量的非结构化数据。如何从这些非结构化数据中提取有效信息,供人们在学习和工作中使用呢?这个问题促使网络爬虫技术应运而生。由于Python语言简单易用,而且还提供了优秀易用的第三方库和多样的爬虫框架,所以使得它成为了网络爬虫技术的主力军。近年来,大数据技术发展迅速,数据爬取作为数据分析的一环也显得尤为重要。程序员要进入与数据处理、分析和挖掘等相关的行业,就必须要掌握Python语言及其网络爬虫的运用,这样才能在就业严峻的市场环境中有较强的职场竞争力和较好的职业前景。
目前,图书市场上仅有的几本Python网络爬虫类图书,要么是国外优秀图书,但书籍翻译隐晦,阅读难度大,而且往往由于网络原因,使得书中的案例不能正常使用,因此不适合初学者;要么是国内资料,但质量参差不齐,而且不成系统,同样不适合初学者。整个图书市场上还鲜见一本适合初学者阅读的Python网络爬虫类图书。本书便是基于这个原因而编写。本书从Python语言基础讲起,然后深入浅出地介绍了爬虫原理、各种爬虫技术及22个爬虫实战案例。本书全部选用国内网站作为爬虫案例,便于读者理解和实现,同时也可以大大提高读者对Python网络爬虫项目的实战能力。
本书特色
1.涵盖Windows 7系统第三方库的安装与配置
本书包含Python模块源的配置、第三方库的安装和使用,以及PyCharm的安装和使用。
2.对网络爬虫技术进行了原理性的分析
本书从一开始便对网络连接和爬虫原理做了基本介绍,并对网络爬虫的基本流程做了详细讲解,便于读者理解本书后面章节中的爬虫项目案例。
3.内容全面,应用性强
本书介绍了从单线程到多进程,从同步加载到异步加载,从简单爬虫到框架爬虫等一系列爬虫技术,具有超强的实用性,读者可以随时查阅和参考。
4.项目案例典型,实战性强,有较高的应用价值
本书介绍了22个爬虫项目实战案例。这些案例来源于不同的网站页面,具有很高的应用价值。而且这些案例分别使用了不同的爬虫技术实现,便于读者融会贯通地理解书中介绍的技术。
本书内容
第1章Python零基础语法入门
本章介绍了Python和PyCharm的安装及Python最为简单的语法基础,包括简单的流程控制、数据结构、文件操作和面向对象的编程思想。
第2章爬虫原理和网页构造
本章通过介绍网络连接原理,进而介绍了爬虫的原理,讲解了爬虫的基本流程,另外还介绍了如何使用Chrome浏览器认识网页构造和查询网页信息。
第3章我的第一个爬虫程序
本章主要介绍了安装请求和解析网页的Python第三方库、Requests库和BeautifulSoup库的使用方法,最后通过综合案例手把手教会读者编写一个简单的爬虫程序。
第4章正则表达式
本章主要介绍了正则表达式的常用符号及Python中re模块的使用方法,在不需要解析库的情况下完成一个简单的爬虫程序。
第5章Lxml库与Xpath语法
本章主要介绍了Lxml库在Mac和Linux环境中的安装方法、Lxml库的使用方法及Xpath语法知识,并且通过案例对正则表达式、BeautifulSoup和Lxml进行了性能对比,最后通过综合案例巩固Xpath语言的相关知识。
第6章使用API
本章主要介绍了API的使用和调用方法,对API返回的JSON数据进行解析,最后通过使用API完成一些有趣的综合案例。
第7章数据库存储
本章主要介绍了非关系型数据库MongoDB和关系型数据库MySQL的相关知识,并通过综合案例展示了Python对两种数据库的存储方法。
第8章多进程爬虫
本章主要介绍了多线程及其概念,并通过案例对串行爬虫和多进程爬虫的性能进行了对比,最后通过综合案例介绍了多进程爬取数据的方法和技巧。
第9章异步加载
本章主要介绍了异步加载的基本概念,以及如何针对异步加载网页使用逆向工程抓取数据,最后通过综合案例讲解了逆向工程的使用方法和常用技巧。
第10章表单交互与模拟登录
本章主要介绍了Requests库的POST方法,通过观测表单源代码和逆向工程来填写表单以获取网页信息,以及通过提交cookie信息来模拟登录网站。
第11章Selenium模拟浏览器
本章主要介绍了Selenium模块的安装、Selenium浏览器的选择和安装,以及Selenium模块的使用方法,最后通过综合案例介绍了如何对采用异步加载技术的网页进行爬虫。
第12章Scrapy爬虫框架
本章主要介绍了Windows 7环境中的Scrapy安装和创建爬虫项目的过程,并通过案例详细讲解了各个Scrapy文件的作用和使用方法,而且通过多个综合案例讲解了如何通过Scrapy爬虫框架把数据存储到不同类型的文件中,最后讲解了如何编写跨页面网站的爬虫代码。
本书读者对象
�8�5数据爬虫初学者;
�8�5数据分析初级人员;
�8�5网络爬虫爱好者;
�8�5数据爬虫工程师;
�8�5 Python初级开发人员;
�8�5需要提高动手能力的爬虫技术人员;
�8�5高等院校的相关学生。
本书配套资源及获取方式
本书涉及的源代码文件等配套学习资源需要读者自行下载。请登录机械工业出版社华章公司的网站www.hzbook.com,然后搜索到本书页面,按照页面上的说明进行下载即可。
虽然我们对书中所述内容都尽量核实,并多次进行文字校对,但因时间有限,加之水平所限,书中疏漏和错误之处在所难免,敬请广大读者批评、指正。联系我们请发E-mail到hzbook2017 163.com。
编著者
目录
前言
第1章 Python零基础语法入门1
1.1 Python与PyCharm安装1
1.1.1 Python安装(Windows、Mac和Linux)1
1.1.2 PyCharm安装3
1.2 变量和字符串3
1.2.1 变量4
1.2.2 字符串的“加法”和“乘法”4
1.2.3 字符串的切片和索引5
1.2.4 字符串方法5
1.3 函数与控制语句7
1.3.1 函数7
1.3.2 判断语句8
1.3.3 循环语句8
1.4 Python数据结构9
1.4.1 列表9
1.4.2 字典11
1.4.3 元组和集合11
1.5 Python文件操作11
1.5.1 打开文件11
1.5.2 读写文件12
1.5.3 关闭文件13
1.6 Python面向对象13
1.6.1 定义类14
1.6.2 实例属性14
1.6.3 实例方法15
1.6.4 类的继承16
第2章 爬虫原理和网页构造17
2.1 爬虫原理17
2.1.1 网络连接17
2.1.2 爬虫原理18
2.2 网页构造21
2.2.1 Chrome浏览器的安装21
2.2.2 网页构造22
2.2.3 查询网页信息23
第3章 我的第一个爬虫程序26
3.1 Python第三方库26
3.1.1 Python第三方库的概念26
3.1.2 Python第三方库的安装方法27
3.1.3 Python第三方库的使用方法29
3.2 爬虫三大库30
3.2.1 Requests库30
3.2.2 BeautifulSoup库32
3.2.3 Lxml库36
3.3 综合案例1——爬取北京地区短租房信息37
3.3.1 爬虫思路分析37
3.3.2 爬虫代码及分析38
3.4 综合案例2——爬取酷狗TOP500的数据41
3.4.1 爬虫思路分析41
3.4.2 爬虫代码及分析43
第4章 正则表达式45
4.1 正则表达式常用符号45
4.1.1 一般字符45
4.1.2 预定义字符集46
4.1.3 数量词46
4.1.4 边界匹配47
4.2 re模块及其方法48
4.2.1 search()函数48
4.2.2 sub()函数49
4.2.3 findall()函数49
4.2.4 re模块修饰符51
4.3 综合案例1——爬取《斗破苍穹》全文小说53
4.3.1 爬虫思路分析53
4.3.2 爬虫代码及分析55
4.4 综合案例2——爬取糗事百科网的段子信息56
4.4.1 爬虫思路分析56
4.4.2 爬虫代码及分析58
第5章 Lxml库与Xpath语法63
5.1 Lxml库的安装与使用方法63
5.1.1 Lxml库的安装(Mac、Linux)63
5.1.2 Lxml库的使用64
5.2 Xpath语法68
5.2.1 节点关系68
5.2.2 节点选择70
5.2.3 使用技巧70
5.2.4 性能对比74
5.3 综合案例1——爬取豆瓣网图书TOP250的数据77
5.3.1 将数据存储到CSV文件中77
5.3.2 爬虫思路分析78
5.3.3 爬虫代码及分析80
5.4 综合案例2——爬取起点中文网小说信息83
5.4.1 将数据存储到Excel文件中83
5.4.2 爬虫思路分析84
5.4.3 爬虫代码及分析86
第6章 使用API88
6.1 API的使用88
6.1.1 API概述88
6.1.2 API使用方法89
6.1.3 API验证91
6.2 解析JSON数据93
6.2.1 JSON解析库93
6.2.2 斯必克API调用94
6.2.3 百度地图API调用96
6.3 综合案例1——爬取PEXELS图片98
6.3.1 图片爬取方法98
6.3.2 爬虫思路分析99
6.3.3 爬虫代码及分析100
6.4 综合案例2——爬取糗事百科网的用户地址信息102
6.4.1 地图的绘制102
6.4.2 爬取思路分析105
6.4.3 爬虫代码及分析106
第7章 数据库存储109
7.1 MongoDB数据库109
7.1.1 NoSQL概述109
7.1.2 MongoDB的安装109
7.1.3 MongoDB的使用115
7.2 MySQL数据库117
7.2.1 关系型数据库概述117
7.2.2 MySQL的安装117
7.2.3 MySQL的使用123
7.3 综合案例1——爬取豆瓣音乐TOP250的数据126
7.3.1 爬虫思路分析126
7.3.2 爬虫代码及分析127
7.4 综合案例2——爬取豆瓣电影TOP250的数据132
7.4.1 爬虫思路分析132
7.4.2 爬虫代码及分析133
第8章 多进程爬虫139
8.1 多线程与多进程139
8.1.1 多线程和多进程概述139
8.1.2 多进程使用方法140
8.1.3 性能对比140
8.2 综合案例1——爬取简书网热评文章143
8.2.1 爬虫思路分析143
8.2.2 爬虫代码及分析147
8.3 综合案例2——爬取转转网二手市场商品信息150
8.3.1 爬虫思路分析150
8.3.2 爬虫代码及分析152
第9章 异步加载159
9.1 异步加载技术与爬虫方法159
9.1.1 异步加载技术概述159
9.1.2 异步加载网页示例159
9.1.3 逆向工程162
9.2 综合案例1——爬取简书网用户动态信息165
9.2.1 爬虫思路分析165
9.2.2 爬虫代码及分析171
9.3 综合案例2——爬取简书网7日热门信息173
9.3.1 爬虫思路分析173
9.3.2 爬虫代码及分析179
第10章 表单交互与模拟登录182
10.1 表单交互182
10.1.1 POST方法182
10.1.2 查看网页源代码提交表单182
10.1.3 逆向工程提交表单185
10.2 模拟登录187
10.2.1 Cookie概述187
10.2.2 提交Cookie模拟登录187
10.3 综合案例1——爬取拉勾网招聘信息188
10.3.1 爬虫思路分析188
10.3.2 爬虫代码及分析193
10.4 综合案例2——爬取新浪微博好友圈信息195
10.4.1 词云制作195
10.4.2 爬虫思路分析202
10.4.3 爬虫代码及分析206
第11章 Selenium模拟浏览器209
11.1 Selenium和PhantomJS209
11.1.1 Selenium的概念和安装209
11.1.2 浏览器的选择和安装209
11.2 Selenium和PhantomJS的配合使用213
11