《Python网络爬虫技术案例教程》(林忠会) 第1章.Python网络爬虫_第1页
《Python网络爬虫技术案例教程》(林忠会) 第1章.Python网络爬虫_第2页
《Python网络爬虫技术案例教程》(林忠会) 第1章.Python网络爬虫_第3页
《Python网络爬虫技术案例教程》(林忠会) 第1章.Python网络爬虫_第4页
《Python网络爬虫技术案例教程》(林忠会) 第1章.Python网络爬虫_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫Python网络爬虫技术案例教程PythonWangluoPachongJishuAnliJiaocheng作业布置单击此处获取APP扫码作业布置方法作业布置宣传片,欢迎播放了解单击此处获取微信扫码作业布置方法使用说明文档本课作业布置二维码老师扫描此码,即可进行线上作业布置COMMITTEDCOMMITTEDCOMMITTECOMMITTECONTENTS目录COMMITTED第1章网络爬虫入门

第2章爬虫基础第3章网页解析基础第4章爬取动态加载数据第5章反爬虫策略第6章模拟登录和处理验证码

第7章爬取App和PC客户端第8章爬虫框架Scrapy第9章分布式爬虫第10章项目实战.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫扫码下载文旌课堂APP扫码签到(202X.XX.XXXX:XX至202X.XX.XXXX:XX)签到方式教师通过“文旌课堂APP”生成签到二维码,并设置签到时间,学生通过“文旌课堂APP”扫描“签到二维码”进行签到。签到.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫第1章

网络爬虫入门本章导读在当今这个数据大爆炸的信息时代,用户与网络的沟通本质上是数据的交换,这导致了互联网信息数据量的爆发式增长。海量的互联网数据蕴含着巨大的价值,用户如何自动高效地从互联网中获取感兴趣的信息并有效地应用是一个亟待解决的问题。在这样的环境和需求的影响下,网络爬虫应运而生,它为互联网数据的采集提供了新的方法。本章从网络爬虫概述入手,介绍网络爬虫的相关基础知识,包括网络爬虫的原理、分类和应用,网络爬虫工作流程,网络爬虫协议,以及搭建Python开发环境等内容。学习目标理解网络爬虫的原理、分类和应用。掌握网络爬虫的工作流程。了解网络爬虫协议。能在Windows系统中搭建Python开发环境。1.1网络爬虫概述1.2网络爬虫工作流程1.3网络爬虫协议第1章网络爬虫入门1.4搭建Python开发环境.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫1.1网络爬虫概述SectionTitle1.1网络爬虫概述1.1.1网络爬虫原理网络爬虫又称为“网络蜘蛛”,是一个用来实现自动采集网络数据的程序。如果将互联网比作一张蜘蛛网,互联网上的一个个网页比作蜘蛛网上的一个个节点,那么网页与网页之间的链接关系可以比作节点间的连线,而网络爬虫就可以比作在网上爬来爬去的蜘蛛。蜘蛛爬到一个节点相当于访问了该网页,提取了信息,然后顺着节点间的连线继续爬行到下一个节点,这样周而复始,蜘蛛就可以爬遍整个网络的所有节点,抓取数据。1.1网络爬虫概述总的来说,网络爬虫的基本原理可用图1-1描述。图1-1网络爬虫基本原理1.1网络爬虫概述(1)预先设定一个或若干个初始网页的URL,将初始URL加入待爬取URL列表中。(2)从待爬取列表中逐个读取URL,并将URL加入已爬取URL列表中,然后下载网页。(3)解析已下载的网页,提取所需的数据和新的URL,并存储提取的数据。(4)将新的URL与已爬取的URL列表进行比对,检查该网页是否已爬取,如果网页没有被爬取,则将新的URL放入待爬取URL列表的末尾,等待读取。(5)如此往复,直到待爬取URL列表为空或者满足设定的终止条件,最终达到遍历网页的目的。1.1网络爬虫概述统一资源定位符(UniformResourceLocator,URL)是对可以从互联网上得到的资源位置和访问方法的一种简洁表示,是互联网上标准资源的地址。1.1网络爬虫概述1.1.2网络爬虫分类网络爬虫按照系统结构和工作原理的不同,大致可以分为四类:系统结构和工作原理的不同通用网络爬虫聚焦网络爬虫增量式网络爬虫深层网络爬虫1.1网络爬虫概述(1)通用网络爬虫又称全网爬虫,是根据网络爬虫的基本原理实现的,它所爬取的目标会从初始设定的URL扩充到全网。通用网络爬虫主要应用于门户网站、搜索引擎和大型网络服务提供商的数据采集。1.1网络爬虫概述(2)聚焦网络爬虫爬取的目标是与预先定义好的主题相关的网页。与通用网络爬虫相比,聚焦网络爬虫只选择爬取与主题相关的网页,极大地节省了硬件和网络资源,它主要应用于对特定领域信息有需求的场景。聚焦网络爬虫在通用网络爬虫的基础上,需要对提取的新URL进行过滤处理,过滤掉与目标主题无关的网页,且根据一定的相关性搜索策略,确定待爬取URL列表的读取顺序。1.1网络爬虫概述(3)增量式网络爬虫爬取的目标是有更新的已下载网页和新产生的网页。爬虫程序监测网站数据更新的情况,然后在需要的时候只爬取发生更新或新产生的网页。这样,可有效减少数据下载量,及时更新已爬取的网页,但是增加了爬行算法的复杂度和实现难度。增量式网络爬虫主要应用于网页内容会时常更新的网站,或者不断有新网页出现的网站。1.1网络爬虫概述(4)深层网络爬虫爬取的目标是不能通过静态链接获取的,隐藏在搜索表单后的,只有用户提交一些关键词才能获得的网页,如用户注册后才可显示内容的网页。1.1网络爬虫概述1.1.3网络爬虫应用每个独立的搜索引擎都有自己的爬虫程序,爬虫程序每天连续地爬取相关网站,提取信息保存到索引数据库中,如Google爬虫Googlebot、百度爬虫Baiduspider、必应爬虫Bingbot

等。此外,有些搜索引擎对应不同的业务还有不同的爬虫,如百度图片爬虫Baiduspider-image、百度新闻爬虫Baiduspider-news等。搜索引擎在用户输入搜索信息后并不是直接搜索整个互联网,而是对预先建立好的索引数据库进行检索。1.1网络爬虫概述企业用户在采集和分析数据时也时常会借助网络爬虫。例如,爬取产品的用户信息进行分析,以确定目标客户群体;爬取同类产品的销售信息进行分析,以制定营销策略等。当然,普通用户也可以根据自己关注的主题采集所需要的数据,把浏览网站或App时所见到的数据都通过爬虫程序保存下来,实现可见即可得。例如,爬取网站上的图片、学术网站的论文、团购网站的价格及点评、各种电商平台的商品信息、招聘网站的招聘信息等数据。1.1网络爬虫概述(4)深层网络爬虫爬取的目标是不能通过静态链接获取的,隐藏在搜索表单后的,只有用户提交一些关键词才能获得的网页,如用户注册后才可显示内容的网页。1.2网络爬虫工作流程.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫SectionTitle1.2网络爬虫工作流程网络爬虫是一个自动化的程序,它的工作流程非常简单。爬虫程序首先发送请求,获取网页响应的内容,然后解析网页内容,最后将提取的数据存储到文件或数据库中。总结起来,其工作流程可以分为爬取网页、解析网页和存储数据三个步骤,如图1-2所示。图1-2网络爬虫工作流程1.2网络爬虫工作流程1.2.1爬取网页爬虫程序首先要做的工作是爬取网页,即获取网页的源代码。源代码里包含了网页的有用信息,所以只要把源代码爬取下来,就可以从中提取想要的信息。爬虫程序向网站的服务器发送一个HTTP请求,服务器返回给爬虫程序包含所需数据的HTTP响应(即网页源代码)。Python提供了许多与网络爬虫相关的库,其中,在爬取网页方面有urllib、requests、selenium库等。1.2网络爬虫工作流程1.2.2解析网页爬取网页后,接下来就是解析网页了。解析网页是用户根据网页结构,分析网页源代码,从中提取想要的数据。它可以使杂乱的数据变得条理清晰,以便用户后续处理和分析。解析网页万能的方法是正则表达式,但是构造正则表达式比较复杂且容易出错,所以Python根据网页节点属性、CSS选择器及XPath语法提供了网页的解析库,如beautifulsoup4、lxml库等。使用这些库,用户可以高效快速地解析网页。1.2网络爬虫工作流程1.2.3存储数据解析网页提取数据后,一般要将提取到的数据保存起来以便后续使用。保存数据的方式有很多种,可以将其简单保存到JSON或CSV文件中,也可以保存到数据库中,如MySQL和MongoDB等。1.3网络爬虫协议.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫SectionTitle1.3网络爬虫协议1.3.1网络爬虫合法性虽然互联网世界已经通过自己的规则建立了一定的道德规范(Robots协议),但法律部分还在建立和完善中。从目前的情况来看,如果抓取的数据用于个人使用或科学研究,那么基本上是不违法的;但如果数据用于其他用途,尤其是转载或商业用途,那么根据爬取网站数据的不同情况有不同的后果,严重的将会引起民事纠纷甚至触犯法律。因此,用户在爬取数据时应避免以下几个方面的问题。1.3网络爬虫协议应避免以下几个方面的问题(1)侵犯著作权。(2)侵犯商业秘密。(3)侵犯个人隐私。(4)构成不正当竞争。(5)侵入计算机系统,构成刑事犯罪。1.3网络爬虫协议百度与大众点评不正当竞争纠纷案是百度公司因使用技术手段抓取并使用大众点评内容而被认定为构成不正当竞争的案例。本案在2016年被列为“影响中国互联网法制进程十大案例”之一。大众点评是上海汉涛信息咨询有限公司(下称“汉涛公司”)向网络用户提供商户基本信息及点评信息的生活服务App。北京百度网讯科技有限公司(下称“百度公司”)使用技术手段在大众点评等App上抓取了商户的基本信息及点评信息,用户使用其运营的百度地图App查询位置时,无须跳转至大众点评界面,就可直接在百度地图界面获取商户的基本信息和点评信息。汉涛公司以百度公司等相关主体构成不正当竞争向法院起诉。在本案审理过程中,法院将《反不正当竞争法》第二条作为主要裁判依据,并最终认定百度公司构成不正当竞争。1.3网络爬虫协议1.3.2Robots协议Robots协议(又称“爬虫协议”)的全称是“网络爬虫排除标准”(Robotsexclusionprotocol)。网站管理者可以通过它来表达是否希望爬虫程序自动获取网站信息的意愿。管理者可以在网站根目录下放置一个robots.txt文件,并在文件中列出哪些链接不允许爬虫程序获取。当爬虫程序访问一个网站时,它会首先检查该网站根目录下是否存在robots.txt文件,如果存在,爬虫程序就会按照该文件中的内容来确定访问范围;如果不存在,爬虫程序就能够访问网站上所有没被保护的网页。1.3网络爬虫协议robots.txt文件遵循一定的格式,下面以知乎的robots.txt文件为例进行介绍。访问/robots.txt,可以查看完整代码(这里仅截取部分代码进行分析),如图1-3所示。图1-3知乎的robots.txt文件部分代码1.3网络爬虫协议“User-agent:Googlebot-Image”表示这部分代码针对谷歌图片爬虫,禁止或允许谷歌图片爬虫爬取某些文件;如果代码为“User-agent:*”,则表示针对所有搜索引擎的爬虫程序。“Disallow:/appview/”表示禁止爬取网站根目录的appview文件夹下的文件。1.3网络爬虫协议“Disallow:/*?guide*”表示禁止爬取网站中所有包含guide的网址。“Allow:/search-special”表示允许爬取网站根目录下所有以search-special开头的文件夹和文件。1.3网络爬虫协议当然,如果要禁止爬虫程序爬取网站中的所有内容,可以用更简单的方法。例如,淘宝网不允许百度的爬虫程序访问其网站下所有的目录,其robots.txt文件内容如图1-4所示。图1-4淘宝网的robots.txt文件1.3网络爬虫协议在百度里搜索淘宝就会显示“由于该网站的robots.txt文件存在限制指令(限制搜索引擎抓取),系统无法提供该页面的内容描述”,如图1-5所示。图1-5百度搜索淘宝官网的显示情况1.4搭建Python开发环境.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫.Python网络爬虫SectionTitle1.4搭建Python开发环境学习Python网络爬虫首先需要搭建Python开发环境,一般情况下,用户可以直接下载并安装Python,也可以通过Anaconda安装Python。本节介绍安装Anaconda和PyCharm编辑器,来搭建Python开发环境的方法,从而开始网络爬虫的开发之旅。

搭建Python开发环境1.4搭建Python开发环境Anaconda是一个开源的Python发行版本,它包含了Conda、Python等超过180个科学包及其依赖项。PyCharm是一款非常优秀的Python编辑器,带有一整套可以帮助用户在使用Python语言开发时提高效率的工具,如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。1.4搭建Python开发环境1.4.1安装Anaconda1.下载步骤一:访问/,在打开的Anaconda主页中选择“Products”→“IndividualEdition”选项,如图1-6所示。图1-6Anaconda主页

访问/,1.4搭建Python开发环境步骤二:打开下载页面,向下拖动滚动条,直到出现Anaconda安装版本信息,选择“Windows”→“Python3.7”→“64-BitGraphicalInstaller”选项,下载安装软件,如图1-7所示。图1-7下载Anaconda1.4搭建Python开发环境2.安装步骤一:双击下载好的Anaconda3-2020.02-Windows-x86_64.exe文件,在打开的对话框中单击“Next”按钮,如图1-8所示。图1-8欢迎安装

1.4搭建Python开发环境步骤二:显示“LicenseAgreement”界面,单击“IAgree”按钮,如图1-9所示。图1-9同意安装许可1.4搭建Python开发环境步骤三:显示“SelectInstallationType”界面,在“Installfor”列表中勾选“JustMe”单选钮,单击“Next”按钮,如图1-10所示。如果系统创建了多个用户而且都使用Anaconda,则勾选“AllUsers”单选钮。图1-10选择用户1.4搭建Python开发环境步骤四:显示“ChooseInstallLocation”界面,直接使用默认路径,单击“Next”按钮,如图1-11所示。

图1-11设置安装路径1.4搭建Python开发环境步骤五:显示“AdvancedInstallationOptions”界面。在“AdvancedOptions”列表中勾选“AddAnaconda3tomyPATHenvironmentvariable”和“RegisterAnaconda3asmydefaultPython3.7”复选框,单击“Install”按钮,如图1-12所示。图1-12设置系统环境1.4搭建Python开发环境步骤六:安装完成后单击“Next”按钮,最后单击“Finish”按钮,完成Anaconda3的安装。勾选“AddAnaconda3tomyPATHenvironmentvariable”表示把Anaconda3加入环境变量;勾选“RegisterAnaconda3asmydefaultPython3.7”表示将Anaconda3注册为默认安装的Python3.7。1.4搭建Python开发环境3.验证步骤一:单击“开始”按钮,选择“Anaconda3”→“AnacondaPrompt”选项,如图1-13所示。图1-13启动AnacondaPrompt

1.4搭建Python开发环境步骤二:单击“开始”按钮,选择“Anaconda3”→“AnacondaPrompt”选项,如图1-13所示。

图1-14Anaconda库名和版本号列表

1.4搭建Python开发环境1.4.2安装PyCharm1.下载访问/pycharm/download/#section=windows,在打开的下载页面中单击“Community”下的“Download”按钮,下载社区版,如图1-15所示。图1-15下载PyCharm1.4搭建Python开发环境2.安装步骤一:解压下载好的安装包,双击pycharm-community-2020.1.1.exe文件,运行安装程序。步骤二:根据安装提示进行安装即可。1.4搭建Python开发环境在“InstallationOptions”对话框中勾选所有复选框,如图1-16所示。图1-16设置安装选项1.4搭建Python开发环境3.使用步骤一:启动PyCharm,打开“ImportPyCharmSettings”对话框,勾选“Donotimportsettings”单选钮,单击“OK”按钮,如图1-17所示。图1-17PyCharm导入设置1.4搭建Python开发环境步骤二:

打开“CustomizePyCharm”对话框,勾选“Light”单选钮,单击“SkipRemainingandSetDefaults”按钮,如图1-18所示。图1-18设置用户界面主题1.4搭建Python开发环境步骤1和步骤2中的对话框只在PyCharm首次使用时会显示,进行配置后,再次使用时就不需要再进行配置了。1.4搭建Python开发环境步骤三:打开“WelcometoPyCharm”对话框,选择“CreateNewProject”选项,如图1-19所示。图1-19创建新项目1.4搭建Python开发环境步骤四:打开“NewProject”对话框,在“Location”编辑框中设置项目保存的路径,并将项目命名为“Test”;在“Newenvironmentusing”下拉列表中选择默认的“Virtualenv”选项;在“Baseinterpreter”中选择Anaconda安装目录下的python.exe,单击“Create”按钮,如图1-20所示。图1-20配置新项目环境1.4搭建Python开发环境Virtualenv是一个虚拟环境管理器,它可以创建多个虚拟环境,为不同项目提供独立的Python运行环境,以解决不同项目间多版本的冲突问题。在不继承全局安装包的情况下,在Virtualenv环境中安装所需要的包时,会自动安装到该虚拟环境下,不会对其他项目环境有任何影响。1.4搭建Python开发环境步骤五:

打开“PyCharm”窗口。右击项目名“Test”,在弹出的快捷菜单中选择“New”→“PythonFile”选项,新建一个Python文件,如图1-21所示。图1-21新建Python文件1.4搭建Python开发环境步骤六:打开“NewPythonfile”对话框,将文件命名为“HelloWorld”,双击“Pythonfil

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论