Python网络爬虫实战(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-10 15:02:00

点击下载

作者:胡松涛,夏非彼

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Python网络爬虫实战

Python网络爬虫实战试读:

前言

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

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

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

Python简单易学,Python爬虫也不复杂。只需要了解了Python的基本操作即可自行编写。本书中介绍了几种不同类型的Python爬虫,可以针对不同情况的站点进行数据收集。本书特色● 附带全部源代码

为了便于读者理解本书内容,作者已将全部的源代码上传到网络,供读者下载使用。读者通过代码学习开发思路,精简优化代码。● 涵盖了Linux&Windows上模块的安装配置

本书包含了Python模块源的配置、模块的安装,以及常用IDE的使用。● 实战实例

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

本书共8章,前面4章简单地介绍了Python的基本用法和简单Python程序的编写。第5章的Scrapy爬虫框架主要针对一般无须登录的网站,在爬取大量数据时使用Scrapy会很方便。第6章的Beautiful Soup爬虫可以算作爬虫的“个人版”。Beautiful Soup爬虫主要针对一些爬取数据比较少的,结构简单的网站。第7章的Mechanize模块,主要功能是模拟浏览器。它的作用主要是针对那些需要登录验证的网站。第8章的Selenium模块,主要功能也是模拟浏览器,它的作用主要是针对JavaScript返回数据的网站。本书读者与作者● Python网络爬虫初学者● 数据分析与挖掘技术初学者● 高校和培训学校相关专业的师生

本书由胡松涛主笔,其他参与编写的有宋士伟、张倩、彭霁、杨旺功、邹瑛、王铁民、殷龙、李春城、张兴瑜、刘祥淼、李柯泉、林龙、赵殿华、牛晓云。本书代码下载

本书代码下载地址(注意数字和字母大小写)为http://pan.baidu.com/s/1miTmq5y。如果下载有问题,请电子邮件联系booksaga@163.com,邮件主题为“网络爬虫代码”。编者2016年11月第1章Python环境配置

为什么选择Python来写网络爬虫?

众所周知Python的速度并不是最快的,比不上Java,比不上C++,更比不上传说中的速度效率之王C了。学习资料的完备也不在三甲之内,市面上讲解C&C++的书籍绝对是Python的几倍甚至几十倍。使用的人数也不是最多,比不上Java、C、C++。

那么,为什么会选择Python?

首先是它简单易学。简单到没有学过任何编程语言的人稍微看下资料,再看几个示例就可以编写出可用的程序;其次它是一门解释型编程语言,编写完毕后可直接执行,无须编译,发现Bug后立即修改,省下了无数的编译时间;还有它的代码重用性高,可以把包含某个功能的程序当成模块代入其他程序中使用,因而Python的模块库庞大到恐怖,几乎是无所不包;最后就是因为它的跨平台性,几乎所有的Python程序,都可以不加修改地运行在不同的操作平台,都能得到同样的结果。这么多的优点都集中在这个语言中,因此最好的选择就是Python。1.1 Python简介

了解一门语言,我们先从它的历史说起。Python的应用越来越广泛,它最初是用来做什么用的,之后又如何发展的,了解这些,我们就更能了解Python。1.1.1 Python的历史由来

Python是一种开源的面向对象的脚本语言,它起源于1989年末,当时,CWI(阿姆斯特丹国家数学和计算机科学研究所)的研究员Guido van Rossum需要一种高级脚本编程语言,为其研究小组的Amoeba分布式操作系统执行管理任务。为创建新语言,他从高级数学语言ABC(ALL BASIC CODE)汲取了大量语法,并从系统编程语言Modula-3借鉴了错误处理机制。Van Rossum把这种新的语言命名为Python(大蟒蛇)——来源于BBC当时正在热播的喜剧连续剧Monty Python。

ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是非开放造成的。Guido决心在Python中避免这一错误。同时,他还想实现在ABC中闪现过但未曾实现的东西。

就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,并且结合了Unix shell和C的习惯。Python源代码遵循GPL(GNU General Public License)协议。所以任何个人用户都可以免费使用。1.1.2 Python的现状

Python于1991年初公开发行,由于功能强大和采用开源方式发行,Python发展得很快,用户越来越多,形成了一个强大的社区力量。2001年,Python的核心开发团队移师Digital Creations公司,该公司是Zope(一个用Python编写的Web应用服务器)的创始者。大家可到http://www.python.org/上了解最新的Python动态和资料。

如今,Python已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,Python的使用率是呈线性增长。1.1.3 Python的应用

Python应用广泛,特别适用与以下几个方面。● 系统编程:提供API(Application Programming Interface,应用

程序编程接口),能方便地进行系统维护和管理,Linux下标志性

语言之一,是很多系统管理员理想的编程工具。● 图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处

理。● 数学处理:NumPy扩展提供大量与许多标准数学库的接口。● 文本处理:Python提供的re模块能支持正则表达式,还提供

SGML、XML分析模块,许多程序员利用Python进行XML程序的

开发。● 数据库编程:程序员可通过遵循Python DB-API(数据库应用程

序编程接口)规范的模块与Microsoft SQL Server、Oracle、

Sybase、DB2、MySQL、SQLite等数据库通信。Python自带有一

个Gadfly模块,提供了一个完整的SQL环境。● 网络编程:提供丰富的模块支持sockets编程,能方便快速地开

发分布式应用程序。很多大规模软件开发计划,例如Zope、

Mnet及BitTorrent、Google都在广泛地使用它。● Web编程:应用的开发语言,支持最新的XML技术。● 多媒体应用:Python的PyOpenGL模块封装了OpenGL应用程序

编程接口,能进行二维和三维图像处理。PyGame模块可用于编

写游戏软件。● PYMO引擎:PYMO全称为Python Memories Off,是一款运行于

Symbian S60V3、Symbian3、S60V5、Symbian3、Android系统

上的AVG游戏引擎。因其基于Python2.0平台开发,并且适用于

创建秋之回忆(memories off)风格的AVG游戏,故命名为

PYMO。

不只个人用户推崇Python,企业用户也对Python青睐有加,以下是明星企业的应用项目:● Reddit:社交分享网站,最早用Lisp开发,在2005年转为

python。● Dropbox:文件分享服务。● 豆瓣网:图书、唱片、电影等文化产品的资料数据库网站。● Django:鼓励快速开发的Web应用框架。● Fabric:用于管理成百上千台Linux主机的程序库。● EVE:网络游戏EVE大量使用Python进行开发。● Blender:以C与Python开发的开源3D绘图软件。● BitTorrent:bt下载软件客户端。● Ubuntu Software Center:Ubuntu 9.10版本后自带的图形化包管

理器。● YUM:用于RPM兼容的Linux系统上的包管理器。● Civilization IV:游戏《文明4》。● Battlefield 2:游戏《战地2》。● Google:谷歌在很多项目中用python作为网络应用的后端,如

Google Groups、Gmail、Google Maps等,Google App Engine支

持python作为开发语言。● NASA:美国宇航局,从1994年起把python作为主要开发语言。● Industrial Light & Magic:工业光魔,乔治·卢卡斯创立的电影特

效公司。● Yahoo! Groups:雅虎推出的群组交流平台。● YouTube:视频分享网站,在某些功能上使用到python。● Cinema 4D:一套整合3D模型、动画与绘图的高级三维绘图软件,

以其高速的运算和强大的渲染插件著称。● Autodesk Maya:3D建模软件,支持python作为脚本语言。● gedit:Linux平台的文本编辑器。● GIMP:Linux平台的图像处理软件。● Minecraft: Pi Edition:游戏《Minecraft》的树莓派版本。● MySQL Workbench:可视化数据库管理工具。● Digg:社交新闻分享网站。● Mozilla:为支持和领导开源的Mozilla项目而设立的一个非营利组

织。● Quora:社交问答网站。● Path:私密社交应用。● Pinterest:图片社交分享网站。● SlideShare:幻灯片存储、展示、分享的网站。● Yelp:美国商户点评网站。● Slide:社交游戏/应用开发公司,被谷歌收购。

还有很多企业级的应用这里就不一一列举了。Python适用于不同的场合、不同的人群,是适应性非常强的一门语言。1.2 Python开发环境配置

Python在PC三大主流平台(Windows、Linux和OSX)都可使用。在这里只讲解Windows和Linux下的开发环境配置。Windows平台以Windows 7为例,Linux平台以Debian 8系统为例。Python目前主要有两个版本,Python 2和Python 3。目前,Python 2的最终版本是Python 2.7.11,Python 3的最终版本是Python 3.5.1。Python 3虽然功能更加强大,但暂时Python 2的使用人数更多,本书中全部选择Python 2.7为例。1.2.1 Windows下安装Python(1)打开Chrome浏览器,在地址栏输入Python官网地址www.python.org,如图1-1所示。图1-1 Python官网(2)单击Python 2.7.11,进入Python 2.7.11的下载页面,如图1-2所示。图1-2 Python下载(3)按照安装的Windows系统选择下载的安装文件。示例系统是Windows 7 64位版本,所以在此下载的是Windows x86-64 installer。(4)下载完毕,得到安装文件python-2.7.11.amd64.msi。双击该文件图标,开始安装Python 2.7,如图1-3所示。图1-3 安装Python(5)单击Next按钮,设置Python安装路径,如图1-4所示。图1-4 设置Python安装路径(6)选择或者填入Python的安装路径后,单击Next按钮,进入Python组件设置,如图1-5所示。图1-5 Python组件选择

默认情况下Add python.exe to Path这个组件是未选择的,它的作用是将Python的路径加入系统环境中。请将它选择上,单击Next按钮,开始安装Python,如图1-6所示。图1-6 安装Python(7)单击Finish按钮,整个安装程序完毕。验证Python是否安装成功。单击桌面左下角的“开始”菜单,在地址栏输入cmd.exe后按Enter键,打开Windows系统命令行程序,如图1-7所示。图1-7 打开系统命令行工具cmd.exe(8)执行命令,验证Python,如图1-8所示。图1-8 验证Python

好了,由此可见Python已安装成功,并已将路径添加到环境变量。单击桌面左下的“开始”|“所有程序”菜单,单击Python 2.7菜单,就可以看到Python的菜单,如图1-9所示。图1-9 Python 2.7菜单提示在安装Python的同时也安装了Python自带的IDE——IDLE和本地的模块说明文档。这个文档的说明很详细,一般只用看这个文档就足够了。

至此Python已在Windows上安装验证成功,可以愉快地使用Python了。1.2.2 Windows下安装配置pip

上文中说过,Python有几乎无限的第三方模块。如何安装这些第三方模块呢?这里就不得不说到easy_install和pip了。

easy_install和pip都是Python的模块安装工具,有点类似于Debian系统的apt-get,Fedora系统中的yum,或者是Windows系统中的QQ软件管理器,都是一键安装软件工具,所不同的是它们只负责安装Python模块。老版本中的Python只有easy_install。pip可以认为是easy_install的高级版本,所以pip和easy_install任选其一都可以,个人建议使用pip。在安装Python时已经选择了pip组件(如图1-5所示),就无须再次安装pip了,直接开始配置即可。

因为pip的服务器,也就是安装源在国外,基于国内糟糕的网络环境,使用pip安装python第三方模块将是一个很痛苦的过程。好在还有变通的方法,在国内也有pip的镜像源。只需要在pip的配置文件中将pip的安装源指向国内的服务器,这个问题就解决了。

根据pip的指南,Windows中pip的配置文件是%HOME%/pip/pip.ini(具体到当前环境,Windows的当前用户是king,所以配置文件位置就是C:\Users\king\pip\pip.ini)。默认情况下pip文件夹和pip.ini文件都未被创建,需要自行创建。按照指南创建好文件夹和文件后,修改pip.ini文件,如图1-10所示。图1-10 修改pip.ini

图1-10中准备了3个pip源,任选其一都可以。选择的方法就是在不需要的源地址前面加上#符号。下面来验证一下修改源地址是否成功,执行命令: python -m pip install -upgrade pip

此命令的作用是更新pip源,结果如图1-11所示。图1-11 更新pip源

可以看出,配置文件中的新源已经起作用了。测试一下pip。单击桌面左下角的“开始”菜单,在地址栏中输入cmd.exe后按Enter键,打开Windows系统命令行程序。执行命令,如图1-12所示。图1-12 测试pip

到此pip已完全配置完毕。1.2.3 Linux下安装Python

即使同一个版本的Linux,也因为不同的桌面环境而变得复杂起来。丰富的软件,是Linux的成功之处。没有统一的标准,却是Linux不能做大做强的关键所在。为避免桌面环境的差异,这里统一使用Putty来连接Linux。对于Python而言,任意版本的Linux都没有任何的区别。这里演示用的Linux系统为Debian 8.0,IP地址为192.168.2.80。下面,先用Putty连接这个Linux机器。(1)双击Putty图标,打开Putty.exe,填入IP地址和端口信息,如图1-13所示。图1-13 Putty连接设置(2)单击Open按钮,第一次使用Putty登录Linux会有一个安全警告提示,如图1-14所示。图1-14 Putty安全警告(3)单击“是(Y)”按钮,进入了Linux的登录界面,如图1-15所示。图1-15 登录Linux(4)输入用户名和用户密码后(用户密码不回显),登录到了Linux。

Debian Linux默认安装了Python 2和Python 3(几乎所有的Linux发行版本都默认安装了Python)。Python命令默认指向Python 2.7,验证一下Python的路径,执行命令: whereis python ls -l /usr/bin/python ls -l /usr/bin/python3

执行的结果如图1-16所示。图1-16 查看Python路径

再来看看Python的版本信息,执行命令: python2 -V python3 -V

执行的结果如图1-17所示。图1-17 Python版本信息

从图1-17中可以看出,Linux上安装的Python的版本与官网上的最新版本(Python 3.5.1-Python 2.7.11)是不同的。这是正常现象,一般来说Debian Linux会使用软件的最稳定版本,而Ubuntu Linux会使用软件的最新版本。1.2.4 Linux下安装配置pip

如同Windows中的Python一样,Linux中的Python同样需要一个模块安装的管理工具,可以是easy_install,也可以是pip。遗憾的是多数Linux版本并没有默认安装这个管理工具(Debian可以用apt-get安装大部分的Python第三方模块,只有极少数的模块不能使用apt-get安装),所以得自己安装它了。

从Debian Linux中安装pip,执行命令: su - apt-get install python-pip

执行结果如图1-18所示。图1-18 安装pip

输入su -命令后再输入系统root用户的登录密码。该命令的作用是使用root用户登录系统,并使用root用户的环境变量。apt-get install python-pip作用是使用apt-get命令安装python-pip这个工具包。最后输入y确认执行命令,开始安装python-pip。提示Linux下安装软件都必须有root权限,可以直接转换成root用户安装,也可以在sudoers里添加用户和权限。

安装python-pip后,退出root用户环境,查看pip版本,如图1-19所示。图1-19 验证pip

最后还要将pip的更新源改成国内源。根据pip的指南,在Linux下pip的配置文件是$HOME/.pip/pip.conf,执行命令: su - cd pwd mkdir .pip cd .pip cat > pip.conf << EOF [global] index-url = https://pypi.mirrors.ustc.edu.cn/simple #index-url = http://pypi.hustunique.com/simple #index-url = http://pypi.douban.com/simple EOF cat pip.conf exit

执行结果如图1-20所示。图1-20 修改pip.conf

验证一下修改源地址是否成功,执行命令: su - python -m pip install -upgrade pip exit

结果如图1-21所示。图1-21 更新pip源

从图1-21可以看出pip源已经开始起作用了。下面来测试一下pip,如图1-22所示。图1-22 测试pip

到此pip已完全配置完毕。和Windows下的pip不同,Linux下的pip可以用root安装模块,也可以使用一般用户来安装模块。推荐使用root用户来安装,因为有些模块安装需要root特权,root安装的模块一般用户都可以使用。1.2.5 永远的开始:hello world

似乎所有的编程语言第一个程序都是hello world。Python也不能免俗,下面分别从Windows和Linux下创建hello.py。1.Windows下创建hello.py(1)单击桌面左下的“开始”|“所有程序”菜单,单击Python 2.7菜单,单击IDLE (Python GUI)菜单,如图1-23所示。图1-23 打开IDLE(2)此时打开的是Python shell交互界面,再单击File|New File菜单,如图1-24所示。图1-24 打开IDE(3)用IDLE的IDE打开了一个新文件,在此新文件中编辑hello.py,如图1-25所示。图1-25 编辑hello.py(4)单击该IDE的File|Save As …菜单,将已编辑好的代码保存,如图1-26所示。图1-26 保存代码(5)选择保存文件位置。这里选择的是保存到桌面,文件名为hello.py,如图1-27所示。图1-27 选择文件保存位置(6)单击“保存”按钮,将hello.py保存到桌面。按Shift按钮,同时右击桌面空白处,如图1-28所示。图1-28 打开Windows命令行工具(7)单击“在此处打开命令窗口”,打开了命令行工具,执行命令: python hello.py

执行结果如图1-29所示。图1-29 执行hello.py

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载