内容简介

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

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

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

作者简介

  胡松涛,高级工程师,参与多个Linux开源项目,github知名代码分享者,活跃于国内著名的多个开源论坛。出版图书《树莓派开发从零开始学--超好玩的智能小硬件制作书》。

目录

第1章Python环境配置1

1.1Python简介1

1.1.1Python的历史由来1

1.1.2Python的现状2

1.1.3Python的应用2

1.2Python开发环境配置4

1.2.1Windows下安装Python4

1.2.2Windows下安装配置pip9

1.2.3Linux下安装Python10

1.2.4Linux下安装配置pip12

1.2.5永远的开始:helloworld15

1.3本章小结20

第2章Python基础21

2.1Python变量类型21

2.1.1数字21

2.1.2字符串24

2.1.3列表28

2.1.4元组34

2.1.5字典36

2.2Python语句40

2.2.1条件语句——ifelse40

2.2.2有限循环——for41

2.2.3无限循环——while43

2.2.4中断循环——continue、break45

2.2.5异常处理——tryexcept47

2.2.6导入模块——import49

2.3函数和类53

2.3.1函数53

2.3.2类59

2.4Python代码格式65

2.4.1Python代码缩进65

2.4.2Python命名规则66

2.4.3Python代码注释68

2.5Python调试70

2.5.1Windows下IDLE调试70

2.5.2Linux下pdb调试73

2.6本章小结77

第3章简单的Python脚本78

3.1九九乘法表78

3.1.1Project分析78

3.1.2Project实施78

3.2斐波那契数列80

3.2.1Project分析80

3.2.2Project实施80

3.3概率计算81

3.3.1Project分析81

3.3.2Project实施82

3.4读写文件83

3.4.1Project分析83

3.4.2project实施84

3.5本章小结85

第4章Python爬虫常用模块86

4.1Python标准库之urllib2模块86

4.1.1urllib2请求返回网页86

4.1.2urllib2使用代理访问网页88

4.1.3urllib2修改header91

4.2Python标准库——logging模块95

4.2.1简述logging模块95

4.2.2自定义模块myLog99

4.3其他有用模块102

4.3.1re模块(正则表达式操作)102

4.3.2sys模块(系统参数获取)105

4.3.3time模块(获取时间信息)106

4.4本章小结110

第5章Scrapy爬虫框架111

5.1安装Scrapy111

5.1.1Windows下安装Scrapy环境111

5.1.2Linux下安装Scrapy112

5.1.3vim编辑器113

5.2Scrapy选择器XPath和CSS114

5.2.1XPath选择器114

5.2.2CSS选择器117

5.2.3其他选择器118

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

5.3.1创建Scrapy项目119

5.3.2Scrapy文件介绍120

5.3.3Scrapy爬虫编写123

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

5.4.1项目准备130

5.4.2创建编辑Scrapy爬虫131

5.4.3数据存储到json138

5.4.4数据存储到MySQL140

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

5.5.1项目准备146

5.5.2创建编辑Scrapy爬虫147

5.5.3多个Spider153

5.5.4处理Spider数据157

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

5.6.1目标分析159

5.6.2创建编辑Scrapy爬虫160

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

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

5.7scrapy爬虫实战五:爬虫攻防167

5.7.1创建一般爬虫167

5.7.2封锁间隔时间破解171

5.7.3封锁Cookies破解171

5.7.4封锁user-agent破解171

5.7.5封锁IP破解174

5.8本章小结177

第6章BeautifulSoup爬虫178

6.1安装BeautifulSoup环境178

6.1.1Windows下安装BeautifulSoup178

6.1.2Linux下安装BeautifulSoup179

6.1.3最强大的IDE——Eclipse179

6.2BeautifulSoup解析器188

6.2.1bs4解析器选择188

6.2.2lxml解析器安装189

6.2.3使用bs4过滤器190

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

6.3.1目标分析196

6.3.2项目实施197

6.3.3代码分析205

6.3.4Eclipse调试206

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

6.4.1目标分析207

6.4.2项目实施210

6.4.3保存结果到Excel214

6.4.4代码分析221

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

6.5.1目标分析222

6.5.2项目实施223

6.5.3保存结果到MySQL226

6.5.4代码分析230

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

6.6.1目标分析230

6.6.2项目实施232

6.6.3bs4反爬虫235

6.6.4代码分析237

6.7bs4爬虫实战五:获取音悦台榜单238

6.7.1目标分析238

6.7.2项目实施239

6.7.3代码分析244

6.8本章小结245

第7章Mechanize模拟浏览器246

7.1安装Mechanize模块246

7.1.1Windows下安装Mechanize246

7.1.2Linux下安装Mechanize247

7.2Mechanize测试248

7.2.1Mechanize百度248

7.2.2Mechanize光猫F460251

7.3Mechanize实站一:获取Modem信息254

7.3.1获取F460数据254

7.3.2代码分析257

7.4Mechanize实战二:获取音悦台公告258

7.4.1登录原理258

7.4.2获取Cookie的方法259

7.4.3获取Cookie262

7.4.4使用Cookie登录获取数据266

7.5本章总结270

第8章Selenium模拟浏览器271

8.1安装Selenium模块271

8.1.1Windows下安装Selenium模块271

8.1.2Linux下安装Selenium模块272

8.2浏览器选择272

8.2.1Webdriver支持列表272

8.2.2Windows下安装PhantomJS273

8.2.3Linux下安装PhantomJS276

8.3Selenium&PhantomJS抓取数据277

8.3.1获取百度搜索结果277

8.3.2获取搜索结果280

8.3.3获取有效数据位置282

8.3.4从位置中获取有效数据284

8.4Selenium&PhantomJS实战一:获取代理285

8.4.1准备环境285

8.4.2爬虫代码287

8.4.3代码解释289

8.5Selenium&PhantomJS实战二:漫画爬虫289

8.5.1准备环境290

8.5.2爬虫代码291

8.5.3代码解释294

8.6本章总结294

前言/序言

  前言

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

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

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

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

  《Python 网络爬虫实战》特色

  附带全部源代码

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

  涵盖了Linux&Windows上模块的安装配置

  《Python 网络爬虫实战》包含了Python模块源的配置、模块的安装,以及常用IDE的使用。

  实战实例

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

  《Python 网络爬虫实战》结构

  《Python 网络爬虫实战》共8章,前面4章简单地介绍了Python的基本用法和简单Python程序的编写。第5章的Scrapy爬虫框架主要针对一般无须登录的网站,在爬取大量数据时使用Scrapy会很方便。第6章的BeautifulSoup爬虫可以算作爬虫的“个人版”。BeautifulSoup爬虫主要针对一些爬取数据比较少的,结构简单的网站。第7章的Mechanize模块,主要功能是模拟浏览器。它的作用主要是针对那些需要登录验证的网站。第8章的Selenium模块,主要功能也是模拟浏览器,它的作用主要是针对JavaScript返回数据的网站。

  《Python 网络爬虫实战》读者与作者

  Python网络爬虫初学者

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

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

  《Python 网络爬虫实战》由胡松涛主笔,其他参与编写的有宋士伟、张倩、彭霁、杨旺功、邹瑛、王铁民、殷龙、李春城、张兴瑜、刘祥淼、李柯泉、林龙、赵殿华、牛晓云。

  编者

  2016年11月


其他推荐