Python 3.7网络爬虫快速入门(txt+pdf+epub+mobi电子书下载)


发布时间:2020-12-01 18:17:18

点击下载

作者:王启明

出版社:清华大学出版社

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

Python 3.7网络爬虫快速入门

Python 3.7网络爬虫快速入门试读:

前言

Python是简练的语言

使用像Python这样的动态类型语言编写的代码往往比用其他主流语言编写的代码更加简短。这意味着,在编程的过程中会有更少的录入工作,而且会更容易记住算法并真正领会算法的原理。

Python是易读的语言

Python不时被人们指为“可执行的伪代码”。虽然很明显这是夸大之词,但是它表明大多数有经验的程序员可以读懂Python代码并领会代码所要表达的意图。

Python是易安装的语言

要搭建Python的环境非常容易,不管是Windows、Linux还是Mac系统,只要配置好Python的环境,只需要easy_install XX或者pip install XX就可以安装所需要的第三方扩展包。

Python是易扩展的语言

Python附属了很多标准库,涉及数据函数、XML解析以及网页下载、RSS解析、SQLLite等,可以解决现实中遇到的各种问题。

为什么用Python实现网络爬虫

基于上述优点,加上抓取网页文档的接口更简洁;相比其他动态脚本语言,如Perl、Shell,Python的urllib2包提供了较为完整的访问网页文档的API,以及抓取后的处理方法,比如筛选HTML标签、提取文本等。Python的相关扩展可以用极短的代码完成大部分文档的处理。本书涉及的技术或框架

Python基本语法 正则表达式 线程(Thread)

Python函数 XML 进程(Process)

lxml模块 CSV 图形识别验证码

XPath语法 MySQL Scrapy

BeautifulSoup PyQuery本书涉及的范例和案例

爬取豆瓣网的内容

爬取电影天堂网的内容

爬取猫眼电影网的内容

爬取腾讯招聘网的内容

使用BeautifulSoup爬取电影天堂的内容

使用正则表达式爬取糗事百科的内容

爬取鼠绘漫画的图片

使用多线程爬取豆瓣的内容

使用Tesseract识别验证码的图片

使用Scrapy框架爬取豆瓣网的内容

使用PyQuery爬取微博热搜的内容本书特点(1)语言通俗易懂。对于没有基础的读者,最忌讳的就是讲一些艰深晦涩的理论,让人难于理解。本书则尽量使用通俗易懂的语言来介绍Python,让大家更容易理解各种知识点,从而将相应的知识变成自己的能力。(2)结合范例程序来讲解知识点。为了讲明各个知识点,基本上每个知识点都通过相关的范例程序来说明。通过范例程序及实际的执行效果,让大家学以致用,在理解领会的基础上进一步掌握相关知识、相应模块的方法。(3)插图配合教学视频。为了保证本书的范例程序均能够成功执行,每个范例程序不仅有相应的程序代码,还有程序执行后的效果图。大家可以通过效果图来对比程序执行的结果,确保学习质量。同时每章还配有一个教学视频供读者自学参考。(4)案例丰富。为了向读者说明Python爬虫程序的效果,书中选择的被爬取的网站都是国内热门的网站,比如豆瓣电影、猫眼电影、电影天堂、微博热搜等。这些网站大家喜闻乐见。通过这些案例,大家可以轻松地掌握相关模块的使用方法,举一反三,将相应技术应用于其他同类的网站中。代码与教学视频下载

本书示例源代码与教学视频下载地址请扫描右边二维码获得。

如果下载有问题,请联系booksaga@163.com,邮件主题为“Python 3.7网络爬虫快速入门”。本书读者● 有志于学习Python爬虫编程的初学者● 对Python网络爬虫技术有兴趣的开发人员● 各类综合信息网站的站长或技术人员● 高校和培训学校相关专业的师生编者2019年7月第1章 简识Python

Python语言是一种面向对象的计算机程序设计语言,一经发行便受到众多计算机开发者的喜爱。经过多年的完善补充,Python语言越发显现出它的优点,成为大数据技术人员热衷学习研究的热门语言。Python简洁清晰的编程风格,易于和计算机其他应用领域巧妙结合,使得Python适应面非常广。

读者通过本章的学习,可以初步了解Python的语言魅力,以及如何将Python用来解决一些数学上的小问题。但是要想完全掌握好一门语言,则需要不断地使用,同时还要在使用过程中不断地积累编程技巧,最后达到融会贯通。

本章主要涉及的知识点有:● 认识Python:Python是一种解释型、交互式、面向对象、对初学者友好的语言● 编程:通过编程实现和计算机的对话,用Python编程实现一些简单的功能● 了解主流的开发环境:借助完善的开发环境进行编程,事半功倍● Hello,World!:编写第一个小程序,并学会处理程序中可能出现的问题1.1 了解Python

本节首先介绍Python的基本概念,这些概念是学习和使用Python编程的前提。理解了Python的这些基础概念之后才能为学好Python编程打下坚实的基础。1.1.1 Python的概念

首先来看看Python的定义。Python是一种解释型、交互式、面向对象的程序设计语言,也是对初学者友好的一种程序设计语言。● Python是解释型语言

Python作为一种解释型语言,意味着在开发过程中可以没有编译这个环节,相较于C语言这门中级程序设计语言而言,Python是一种高级程序设计语言,编程者运用起来更加容易理解和便捷。● Python是交互式语言

这意味着,开发者在开发环境中写入代码,即刻就可以得到回馈的结果。在这个过程中,程序无须先进行整体的编译处理,而是逐条执行程序语句给出运行的结果。● Python是面向对象的程序设计语言

这意味着Python支持将代码封装成对象的面向对象的程序设计方式,使得Python程序能够充分发挥面向对象程序设计技术的长处。● Python是对初学者友好的语言

对初学者来说,Python语言清晰简洁的编程方式,对语法的要求比其他语言更加宽松且具有丰富的扩展功能,便于初学编程者学习和掌握,即学习曲线更短。1.1.2 有趣的Python程序

在深入学习Python语言之前,先来感受一下Python语言实现的一些有趣的小程序。【范例程序1-1】在屏幕上画一条蛇(Python这单词的英文意思就是蟒蛇)

范例程序1-1的代码

执行以上代码,结果如图1.1所示。相信大多数读者通过运行这个范例程序代码,已经看到了这条可爱的小青蛇在屏幕上一点点画出来的样子,是不是很有趣呢?图1.1 画蛇

同时,有些读者可能会对这个范例程序到底写了什么感到好奇。不用着急,请读者循序渐进、一点一点地弄明白这个范例程序代码中各种符号代表的含义。通过本书后面章节的学习,大家很快就可以自己轻松地画出想要的图形了。

Python除了能够实现在屏幕上画图之外,还可以轻松解决一些数学问题。【范例程序1-2】实现简单的温度转换

目前有两种度量温度的标准,分别是摄氏度和华氏度,这个范例程序可以通过简单地输入一种温度值,然后经过换算得到另一种温度值。

范例程序1-2的代码

尝试一下将这些程序代码复制到你的开发环境中,运行一下这个范例程序,试一试温度值的转换。范例程序1-2的运行结果如图1.2与图1.3所示。图1.2 实现温度转换I图1.3 实现温度转换II

有些读者可能还没有一个可以运行Python程序的集成开发环境,没关系,我们在下一节就指导读者安装和建立一个Python的集成开发环境。1.2 集成开发环境

在上一节,大家看到了两个用Python语言编写的范例程序,心中一定充满了好奇,到底Python是怎么做到的呢?从本节开始,我们就正式开始Python的学习。俗话说,“工欲善其事,必先利其器。”所以在学习之前,我们需要了解一下Python的集成开发环境。

什么是集成开发环境?又有哪些可供选择的Python集成开发环境呢?

首先,集成开发环境就像画家手中的纸笔、厨师所用的炊具、木匠常用的工具,是开发程序必备的设施。设想一下,如果没了集成开发环境,那么程序要在哪里编写、执行和调试呢?

Python的集成开发环境有很多,人们可以根据不同的需求来选择使用不同的集成开发环境。对于初学者来说,最适合的集成开发环境当然Python官网提供的。1.2.1 安装Python 3.7

下面先来安装Python 3.7。

首先,读者需要知道自己所用的计算机配备的是什么操作系统。

Python是一种跨平台的语言,可以在Windows、Mac OS以及各种Linux操作系统上运行。目前,人们在计算机中使用最多的还是微软公司的Windows操作系统,因此下面我们主要介绍如何在Windows上一步步安装Python。(1)下载Python安装包。首先使用浏览器打开Python官网,网址为http://www.python.org/downloads/),如图1.4所示。然后选择相应的安装包下载即可。图1.4 Python官网(2)安装下载的Python 3.7.2安装包。执行安装包,出现类似图1.5所示的安装界面。图1.5 安装Python步骤1(3)选择图1.5中的“Install Now”(开始安装)或者“Customize installation”(自定义安装)选项。在开始安装前需要先勾选“Add Python 3.7 to PATH”(将与运行Python 3.7有关的路径加入到系统环境变量Path中)选项。之后将出现如图1.6所示的安装界面。图1.6 安装Python步骤2(4)接下来单击【Next】按钮,直到完成。(5)测试安装是否成功。安装完毕之后需要对安装结果进行测试。首先打开系统的运行窗口,输入cmd,如图1.7所示。图1.7 运行窗口(6)输入完成并单击【确定】按钮,之后会进入命令行窗口。然后在命令行窗口中输入“python”,进入Python开发环境,如图1.8所示。图1.8 在命令行窗口中输入“python”(7)查看图1.8,可以发现这里出现一个错误:‘python’不是内部或外部命令,也不是可运行的程序。

这是为什么呢?原因是Windows会根据安装时环境变量设定的路径去查找Python程序。出现图1.8所示的错误是因为Windows通过系统的PATH环境变量指示的路径没有找到这个程序。回忆一下,安装过程中是否漏掉了需要勾选的一个选项“Add Python 3.7 to PATH”。这时需要手动把安装的路径添加到PATH环境变量中。解决这个问题比较简单:

第一种是最简单的做法,即重新启动安装程序,将“Add Python 3.7 to PATH”选项勾选上。

第二种方法是修改系统的环境变量。这种方法相对复杂,不建议初学者使用。如果还是想尝试这种方法,建议读者去网络上查询修改Path环境变量的方法。

如果读者能够顺利地完成上述安装步骤,那么恭喜读者已经获得了一把“趁手的武器”。接下来,就可以借助这个Python开发环境来编写Python程序了。1.2.2 从IDLE启动Python

启动Python系统自带的、简洁的集成开发环境IDLE。1. 通过运行cmd在命令行窗口中启动IDLE

首先,找到Windows的“运行”选项,在运行框中输入“cmd”命令,启动命令行窗口,如图1.9所示。图1.9 命令行窗口

然后单击Windows“开始”菜单下的“所有程序”,再选择“Python 3.7”,在下级菜单中找到“IDLE”,用鼠标右键单击之,在弹出的快捷菜单中选择“属性”选项,随后弹出如图1.10所示的IDLE属性窗口。图1.10 属性界面

打开图1.10属性窗口中的“快捷方式”选项卡,可以看到“目标”文本框里有路径(即地址),复制这个完整的路径,再粘贴到运行窗口中,如图1.11所示,再按键盘上的【Enter】键,就会弹出Python交互界面。图1.11 把运行IDLE所需的完整路径复制到命令行窗口中2. 直接启动IDLE

单击“开始”菜单中的“所有程序”选项,选择“Python 3.7”命令,在下级菜单中找到“IDLE”,直接单击之即可,结果如图1.12所示。图1.12 Python IDLE界面

本节介绍了如何下载、安装Python 3.7,以及如何启动Python的集成开发环境IDLE,为编程做好了准备。下一节,大家就可以真正动手开始编写Python程序了。1.3 编写自己的第一个Python程序:一个简单的问候

对每一个学习编程的人来说,无论你是学C语言、Java语言还是任何其他程序设计语言,或许会发现一个相同的地方:第一个程序总是“Hello,World!”。

一个简单的问候,像是和计算机进行的第一个对话。你对计算机说“Hello,World!”,计算机回应给你“Hello,World!”。

本节将利用上一节所介绍的集成开发环境来编写一个完整的范例程序:和Python打个招呼。这个程序的最终运行结果如图1.13所示。图1.13 在IDLE中输出“Hello,World!”

这个程序其实只有一条程序语句: print("Hello,World!")

看上去很简单,实际上却可能是初学编程者第一次从人的思维转向计算机的思维。

计算机的思维是什么?简单来说就是按照约定好的规则,一步步地执行。

下面解释一下print语句。

print的用法是将括号中的内容或值输出到计算机屏幕上。我们可以看出括号中有一个双引号,双引号中写着“Hello,World!”。双引号的含义是告诉计算机:代码中的“Hello,World!”是字符串。这条简单的程序代码其实就是完整地告诉计算机:在屏幕上输出一个内容为“Hello,World!”的字符串。

如果将双引号中的“Hello,World!”换成其他的字符串内容,是不是也可以呢?当然可以。

下面就来看看只使用print语句在计算机屏幕上输出由字符组成的有趣图形。

首先来看一个问题:如果我们想在集成开发环境IDLE中编写多条Python的程序语句,最后再一起执行,而以交互式的方式一条一条地执行,那么该怎么办呢?对于这种情况,我们就需要使用到Python的.py文件了,即Python的源代码程序文件。

要新建一个.py文件,在IDLE中找到“File”菜单,从中选择“New File”菜单选项,就新建了一个空白的Python程序文件,结果如图1.14所示。图1.14 未命名的Python程序文件,目前还是空白文件

选择如图1.14所示窗口中的“File”菜单,在选择“Save As”菜单选项,将文件命名为1-3.py,并保存在计算机的桌面上。然后继续在这个1-3.py程序文件中编写下面的程序语句。【范例程序1-3】用print打印字符组成的心形图形

范例程序1-3的代码

在上述程序中所有行均使用print语句来打印出指定的内容。确保上述各行的程序语句编写在1-3.py程序文件中,完成后再单击“Run”菜单,从中选择“Run Module”菜单选项,或者直接按【F5】快捷键,该程序的执行结果如图1.15所示。图1.15 用print打印字符组成的心形图形

查看以上代码,读者就会知道,这只是简单地用print语句以拼接的方式来输出自己想要的图形。

这里只是简单地演示一下如何新建程序文件和编写简单的程序代码。然而,编程或者说程序设计可以简单也可以复杂,它的过程是一个逻辑思维和创造的过程,这个过程既有趣又神奇,人类就是通过编写程序来指挥计算机完成各种各样的工作和任务。1.4 小结

在本章中,首先直观地展示了两个Python的范例程序。然后指导读者如何安装Python的集成开发环境,接下来带领读者编写第一个Python程序。通过本章的学习,让读者对Python有一个初步的了解,为后续章节的学习打下坚实的基础。第2章 Python语法速览

在第1章中,主要介绍了使用Python语言能够实现的一些简单有趣的功能。在这一章,将要具体讲解Python语法。学习Python跟学习任何一门编程语言一样,都必须先学会它的基本语法,这样,编程者才能够学会了如何“遣词造句”,即编写程序。

本章主要涉及的知识点有:● 数据类型和变量:理解变量的概念和如何使用变量,掌握Python的基本数据类型● 运算符:学会使用Python中的运算符,掌握最常用的算术、比较、赋值等运算符● Python复合数据类型:学会使用Python中的列表、元组、字典与集合● 流程控制(条件语句和循环语句):学会条件结构和循环结构2.1 数据类型与变量

本节首先介绍Python中的数据类型、变量和常用的运算符。理解这些概念是学习使用Python的基础。2.1.1 数据类型

数据是构成程序的基石,每种编程语言中都有数据类型的概念,本小节首先来看一下Python中几种常用的数据类型:整数、浮点数、字符串、布尔值与空值等。1. 整数

整数就是数学上的概念,包括正整数、负整数和零。Python可以处理任意大小的整数,在程序中的表示方法和数学上的写法一模一样,例如1、100、-8080、0等。2. 浮点数

浮点数就是数学上所说的小数,之所以称为浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置是可变的。比如,1.2398×10和12.3×10是完全相等的。浮点数可以用数学写法,如1.23、3.14、-9.01等。但是对于很大或很小的浮点数,就必须用科学计数法9来表示,用e替代10,1.23×10就是1.23e9或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。3. 字符串

字符串是以单引号(')或双引号(")括起来的任意文本,比如:提示' '或" "本身只是一种表示方式,其中的单引号与双引号并不是字符串的一部分,它们只是字符串起始和终止的标记符。因此,字符串'abc'只有a、b、c这3个字符。

如果单引号本身也是一个字符,就可以用""括起来,比如"I'm OK"包含的字符是I、'、m、空格、O、K这6个字符。

如果字符串内部既包含单引号又包含双引号,那么可以用转义字符“\”斜杠来标识,比如: 'I\'m \"OK\"!'

表示的字符串内容是: I'm "OK"!

转义字符\可以转义很多字符。例如,\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\。4. 布尔值

除了整数、浮点数、字符串外,还有一类特殊的数据是布尔值。布尔值和它在布尔代数中的表示完全一致,布尔值只有True(真)、False(假)两种值,要么是True,要么是False。在Python中,可以直接用True、False表示布尔值(请注意字母大小写,即首字母大写)。提示数字中的1表示布尔值True,0表示布尔值False,其他值均不表示True与False。

如图2.1所示的就是在Python Shell环境中输出布尔值的范例。图2.1 Python中布尔值的使用5. 空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None就特指一个特殊的空值。2.1.2 变量

上一小节介绍了Python中的数据类型,本小节将介绍Python中的变量。Python中变量的概念基本上和数学中的变量是一致的,只是在计算机程序中,变量不仅可以是数字或数值,还可以是任意数据类型。

变量在程序中用一个变量名表示,变量名必须是大小写英文字母、数字和下划线“_”的组合,且不能用数字开头。通过变量名可以获取变量的值,也可以对变量进行赋值。对变量赋值的意思是将值赋给变量,赋值完成后变量所指向的存储单元就存储了被赋的值。比如:

以上代码中变量num是值为1的整数,变量string_1是内容为“hi world”的字符串,变量Result是值为False的布尔值。其中,“=”在Python中是赋值符号,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同的数据类型。

虽然说我们可以使用任意符合变量命名规则的变量名,但在实际使用中还是有一些约定俗成的规则:(1)能够望文生义。例如,“length = 3,width = 2”,一看便知是长度和宽度。(2)大小写。例如,常量通常使用大写,而变量使用小写等。(3)变量名的长短。虽然Python对变量名的长度没有限制,但是在使用中尽量不要使用过长的变量名。(4)关键字。Python预先定义了一部分有特别意义的标识符,用于Python语言自身使用。这部分标识符称为关键字或保留字,在对变量命名时应避免使用保留字定义变量名,否则会引发语法错误,如下代码所示。

程序报错:不能给关键字赋值。

Python中的所有关键字列在表2.1中。表2.1 Python中的关键字2.2 运算符

前面我们介绍了数据类型与变量,变量是用来存储数据的,存储的数据是用于运算,运算就会使用到运算符。举个简单的例子: 4 + 5 = 9

在上例中,4和5被称为操作数,+被称为运算符。

Python支持以下几种运算符:● 算术运算符● 比较(关系)运算符● 赋值运算符● 逻辑运算符● 位运算符● 成员运算符● 身份运算符

下面分别来介绍这些运算符。2.2.1 算术运算符

算术运算符是对数值类型变量(包括整数、浮点数)进行数学计算的运算符,比如常见的加、减、乘、除等都属于这一类。Python中的算术运算符如表2.2所示。表2.2 Python中的算术运算符【范例程序2-1】算术运算符的使用范例

范例程序2-1的代码

以上代码使用算术运算符对两个数进行计算,并输出结果。其中,str()的作用是将数值转换为字符串,这样才能与前面的字符串部分合并再输出。把这段代码保存到程序文件2-1.py中,再执行该程序,结果如图2.2所示。图2.2 使用Python算术运算符进行计算2.2.2 比较运算符

比较运算符跟通常数学中的比较大小类似,用于比较两个数值或变量的相等、不等、大小等关系。Python中常用的比较运算符如表2.3所示。表2.3 Python中的比较运算符

所有比较运算符的比较结果均返回布尔值True或False。比较运算符用于本章后续将要介绍的条件判断才有实际的意义,这里不再单独举例。2.2.3 赋值运算符

赋值运算符用于对变量进行赋值。最常用的赋值运算是“=”,即“等号”这个符号,在Python中这个“=”和数学中等号的作用是有差别的,它的作用是将“=”右边的值赋给“=”左边的变量,赋值号“=”的左边只能是变量,不能是值或常数。注意:在后文中,在正常的情况下,都将赋值符号“=”称为赋值号或赋值运算符,不

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载