编辑推荐

网络爬虫,又被称为网页蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。很多站点,尤其是搜索引擎,都使用爬虫(它主要用于提供访问页面的一个副本)提供新的数据,然后,搜索引擎对得到的页面进行索引,以便快速访问。爬虫也可以用来在Web上自动执行一些任务,例如检查链接、确认HTML代码;还可以用来抓取网页上某种特定类型的信息,例如电子邮件地址(通常用于垃圾邮件)。因此,网络爬虫技术对互联网企业具有很大的应用价值。

Python网络爬虫实战(第2版)》从Python3.6.4基础的部分讲起,延伸到Python流行的应用方向之一网络爬虫,讲解目前流行的几种Python爬虫框架,并给出详细示例,以帮助读者学习Python并开发出符合自己要求的网络爬虫。

内容简介

Python网络爬虫实战(第2版)》从Python3.6.4的安装开始,详细讲解了Python从简单程序延伸到Python网络爬虫的全过程。《Python网络爬虫实战(第2版)》从实战出发,根据不同的需求选取不同的爬虫,有针对性地讲解了几种Python网络爬虫。

Python网络爬虫实战(第2版)》共10章,涵盖的内容有Python3.6语言的基本语法、Python常用IDE的使用、Python第三方模块的导入使用、Python爬虫常用模块、Scrapy爬虫、BeautifulSoup爬虫、Mechanize模拟浏览器和Selenium模拟浏览器、Pyspider爬虫框架、爬虫与反爬虫。《Python网络爬虫实战(第2版)》所有源代码已上传网盘供读者下载。

Python网络爬虫实战(第2版)》内容丰富,实例典型,实用性强。适合Python网络爬虫初学者、Python数据分析与挖掘技术初学者,以及高等院校和培训学校相关专业的师生阅读。

作者简介

胡松涛,高级工程师,参与多个Linux开源项目,github知名代码分享者,活跃于国内著名的多个开源论坛。

目录

目录

第1章Python环境配置1

1.1Python简介1

1.1.1Python的历史由来1

1.1.2Python的现状2

1.1.3Python的应用2

1.2Python3.6.4开发环境配置4

1.2.1Windows下安装Python4

1.2.2Windows下安装配置pip9

1.2.3Linux下安装Python10

1.2.4Linux下安装配置pip13

1.2.5永远的helloworld16

1.3本章小结21

第2章Python基础22

2.1Python变量类型22

2.1.1数字22

2.1.2字符串25

2.1.3列表29

2.1.4元组34

2.1.5字典37

2.2Python语句41

2.2.1条件语句——ifelse41

2.2.2有限循环——for42

2.2.3无限循环——while44

2.2.4中断循环——continue、break46

2.2.5异常处理——tryexcept48

2.2.6导入模块——import52

2.3函数和类56

2.3.1函数56

2.3.2类62

2.4Python内置函数68

2.4.1常用内置函数68

2.4.2高级内置函数69

2.5Python代码格式74

2.5.1Python代码缩进74

2.5.2Python命名规则75

2.5.3Python代码注释76

2.6Python调试79

2.6.1Windows下IDLE调试79

2.6.2Linux下pdb调试82

2.7本章小结87

第3章简单的Python脚本88

3.1九九乘法表88

3.1.1Project分析88

3.1.2Project实施88

3.2斐波那契数列90

3.2.1Project分析90

3.2.2Project实施90

3.3概率计算91

3.3.1Project分析91

3.3.2Project实施92

3.4读写文件93

3.4.1Project分析93

3.4.2Project实施94

3.5类的继承与重载96

3.5.1Project1分析96

3.5.2Project1实施98

3.5.3Project2分析100

3.5.4Project2实施101

3.6多线程107

3.6.1Project1分析107

3.6.2Project1实施109

3.6.3Project2分析112

3.6.4Project2实施115

3.7本章小结117

第4章Python爬虫常用模块118

4.1网络爬虫技术核心118

4.1.1网络爬虫实现原理118

4.1.2爬行策略119

4.1.3身份识别119

4.2Python3标准库之urllib.request模块120

4.2.1urllib.request请求返回网页120

4.2.2urllib.request使用代理访问网页122

4.2.3urllib.request修改header125

4.3Python3标准库之logging模块129

4.3.1简述logging模块129

4.3.2自定义模块myLog133

4.4re模块(正则表达式)135

4.4.1re模块(正则表达式操作)136

4.4.2re模块实战137

4.5其他有用模块139

4.5.1sys模块(系统参数获取)139

4.5.2time模块(获取时间信息)141

4.6本章小结144

第5章Scrapy爬虫框架145

5.1安装Scrapy145

5.1.1Windows下安装Scrapy环境145

5.1.2Linux下安装Scrapy146

5.1.3vim编辑器147

5.2Scrapy选择器XPath和CSS148

5.2.1XPath选择器148

5.2.2CSS选择器151

5.2.3其他选择器152

5.3Scrapy爬虫实战一:今日影视153

5.3.1创建Scrapy项目153

5.3.2Scrapy文件介绍155

5.3.3Scrapy爬虫编写157

5.4Scrapy爬虫实战二:天气预报164

5.4.1项目准备165

5.4.2创建编辑Scrapy爬虫166

5.4.3数据存储到json173

5.4.4数据存储到MySQL175

5.5Scrapy爬虫实战三:获取代理182

5.5.1项目准备182

5.5.2创建编辑Scrapy爬虫183

5.5.3多个Spider188

5.5.4处理Spider数据192

5.6Scrapy爬虫实战四:糗事百科194

5.6.1目标分析195

5.6.2创建编辑Scrapy爬虫195

5.6.3Scrapy项目中间件——添加headers196

5.6.4Scrapy项目中间件——添加proxy200

5.7Scrapy爬虫实战五:爬虫攻防202

5.7.1创建一般爬虫202

5.7.2封锁间隔时间破解206

5.7.3封锁Cookies破解206

5.7.4封锁User-Agent破解207

5.7.5封锁IP破解212

5.8本章小结215

第6章BeautifulSoup爬虫216

6.1安装BeautifulSoup环境216

6.1.1Windows下安装BeautifulSoup216

6.1.2Linux下安装BeautifulSoup217

6.1.3最强大的IDE——Eclipse218

6.2BeautifulSoup解析器227

6.2.1bs4解析器选择227

6.2.2lxml解析器安装227

6.2.3使用bs4过滤器229

6.3bs4爬虫实战一:获取百度贴吧内容234

6.3.1目标分析234

6.3.2项目实施236

6.3.3代码分析243

6.3.4Eclipse调试244

6.4bs4爬虫实战二:获取双色球中奖信息245

6.4.1目标分析246

6.4.2项目实施248

6.4.3保存结果到Excel251

6.4.4代码分析256

6.5bs4爬虫实战三:获取起点小说信息257

6.5.1目标分析257

6.5.2项目实施259

6.5.3保存结果到MySQL261

6.5.4代码分析265

6.6bs4爬虫实战四:获取电影信息266

6.6.1目标分析266

前言/序言

前言

计算机技术飞速发展,人们对计算机使用技能的要求也越来越高。在编写软件时,大家既希望有超高的效率,又希望这门语言简单易用。这种鱼与熊掌皆得的要求的确很高,Python编程语言恰好符合这么苛刻的要求。

Python的执行效率仅比效率之王C略差一筹,在简单易用方面Python也名列三甲。可以说Python在效率和简单之间达到了平衡。另外,Python还是一门胶水语言,可以将其他编程语言的优点融合在一起,达到1+1>2的效果。这也是Python如今使用人数越来越多的原因。

Python语言发展迅速,在各行各业都发挥独特的作用。在各大企业、学校、机关都运行着Python明星程序。但就个人而言,运用Python最多的还是网络爬虫(这里的爬虫仅涉及从网页提取数据,不涉及深度、广度算法爬虫搜索)。在网络上经常更新的数据,无须每次都打开网页浏览,使用爬虫程序,一键获取数据,下载保存后分析。考虑到Python爬虫在网络上的资料虽多,但大多都不成系统,难以提供系统有效的学习。因此笔者抛砖引玉,编写了这本有关Python网络爬虫的书,以供读者学习参考。

Python简单易学,Python爬虫也不复杂。只需要了解了Python的基本操作即可自行编写。《Python网络爬虫实战(第2版)》中介绍了几种不同类型的Python爬虫,可以针对不同情况的站点进行数据收集。

Python网络爬虫实战(第2版)》特色

?附带全部源代码。为了便于读者理解《Python网络爬虫实战(第2版)》内容,作者已将全部的源代码上传到网络,供读者下载使用。读者通过代码学习开发思路,精简优化代码。

?涵盖了Linux&Windows上模块的安装配置。《Python网络爬虫实战(第2版)》包含了Python模块源的配置、模块的安装,以及常用IDE的使用。

?实战实例。通过常用的实例,详细说明网络爬虫的编写过程。

Python网络爬虫实战(第2版)》内容

Python网络爬虫实战(第2版)》共10章,前面4章简单地介绍了Python3.6的基本用法和简单Python程序的编写。第5章的Scrapy爬虫框架主要针对一般无须登录的网站,在爬取大量数据时使用Scrapy会很方便。第6章的BeautifulSoup爬虫可以算作爬虫的“个人版”。BeautifulSoup爬虫主要针对一些爬取数据比较少的,结构简单的网站。第7章的Mechanize模块,主要功能是模拟浏览器。它的作用主要是针对那些需要登录验证的网站。第8章的Selenium模块,主要功能也是模拟浏览器,它的作用主要是针对JavaScript返回数据的网站。第9章的Pyspider是由国人自产的爬虫框架。Pyspider框架独具一格的Web接口让爬虫的使用更加简单。第10章简单介绍了反爬虫技术,使读者编写的爬虫可以绕过简单的反爬虫技术更加灵活地获取数据。

Python网络爬虫实战(第2版)》用于Python3编程与Python3网络爬虫快速入门。另外,为了让读者多了解几个爬虫框架,《Python网络爬虫实战(第2版)》也介绍了Python2.7下运行的Mechanize与Pyspider工具。

修订说明

Python网络爬虫实战(第2版)》第1版使用了Python2.7,由于Python2未来不再被官方支持,今后Python将逐渐转换到Python3版本。Python3基本上可以与Python2兼容,但细节方面略有差异,比如某些模块的名称(Python2中的urllib2在Python3中变成了urllib.request)。本次修订将所有支持Python3的爬虫全部转换成了Python3的版本,更加符合主流。目前暂时不支持Python3、只支持Python2的爬虫(Mechanize与Pyspider)也修订了代码,改正了一些因为目标网站改版而造成爬虫不能使用的问题。

源代码下载

Python网络爬虫实战(第2版)》源代码下载地址请扫描右边二维码。如果下载有问题,或者对《Python网络爬虫实战(第2版)》有

任何疑问与建议,请联系booksaga@163.com,邮件主题为“Python网络爬虫”。

Python网络爬虫实战(第2版)》读者与作者

?Python编程及Python网络爬虫初学者

?数据分析与挖掘技术初学者

?高等院校和培训学校相关专业的师生

Python网络爬虫实战(第2版)》由胡松涛主笔,其他参与创作的还有王立平、刘祥淼、王启明、樊爱宛、张倩、曹卉、林江闽、王铁民、殷龙、李春城、赵东、李玉莉、李柯泉、李雷霆。

著者

2018年8月


其他推荐