书签 分享 收藏 举报 版权申诉 / 40
上传文档赚钱

类型Python程序设计课件第14章网络爬虫应用开发.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:3713811
  • 上传时间:2022-10-06
  • 格式:PPTX
  • 页数:40
  • 大小:1.44MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Python程序设计课件第14章网络爬虫应用开发.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Python 程序设计 课件 14 网络 爬虫 应用 开发
    资源描述:

    1、 初识网络爬虫初识网络爬虫 网络爬虫的常用技术网络爬虫的常用技术 网络爬虫开发常用框架网络爬虫开发常用框架第14章 网络爬虫应用开发参考书目Python 程序设计目录 初识网络爬虫初识网络爬虫 网络爬虫的常用技术网络爬虫的常用技术 网络爬虫开发常用框架网络爬虫开发常用框架这里说明图片内容 初识网络爬虫初识网络爬虫 网络爬虫的常用技术网络爬虫的常用技术 网络爬虫开发常用框架网络爬虫开发常用框架目录这里说明图片内容 初识网络爬虫1 网络爬虫概述网络爬虫,即Web Spider。如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页的。即读取网

    2、页的内容,找到在网页中的其它链接地址,然后通过这即读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,一直循环下去,把互联网上所有的些链接地址寻找下一个网页,一直循环下去,把互联网上所有的网页都抓取下来。网页都抓取下来。互联网中最有价值的便是数据,爬虫就是高效地挖掘这些宝藏的互联网中最有价值的便是数据,爬虫就是高效地挖掘这些宝藏的方法。方法。初识网络爬虫2 网络爬虫的分类 捜索引擎抓取系统(Baidu、等)的重要组成部分。目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。局限性:通用搜索引擎所返回的结果都是网页 基于关键字的检索,无法准确理解用户的具体

    3、需求通用爬虫“面向特定主题需求”的一种网络爬虫程序 聚焦爬虫在实施网页抓取时会对内容进行处理筛选 应用于对特定信息的爬取,为某一类特定的人群提供服务聚焦爬虫初识网络爬虫3 网络爬虫的基本原理爬虫就是发送请求获取网站内容并从中提取数据的自动化程序。其中请求、提取、自动化是爬虫的关键,网络爬虫的基本流程如图:初识网络爬虫初识网络爬虫 网络爬虫的常用技术网络爬虫的常用技术 网络爬虫开发常用框架网络爬虫开发常用框架目录这里说明图片内容 网络爬虫的常用技术网络爬虫是用于数据采集的一门技术,可以帮助我们自动地进行信息的获取与筛选。网络爬虫常用技术:网络请求、headers处理、网络超时、代理服务以及Bea

    4、utifulSoup等。网络爬虫的常用技术1 Python实现HTTP网络请求Python中实现HTTP网络请求常见的三种方式:urllib、urllib3以及requests。1.urllib库urlliburllib库是库是PythonPython中一个最基本的网络请求库。可以模拟浏览器的行中一个最基本的网络请求库。可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据。在为,向指定的服务器发送一个请求,并可以保存服务器返回的数据。在Python3Python3的的urlliburllib库中,所有和网络请求相关的方法,都被集中到库中,所有和网络请求相关的方法,都被集

    5、中到urllib.requesturllib.request模块下模块下网络爬虫的常用技术1 Python实现HTTP网络请求(1)urlopen()函数urllib.request.urlopen()函数用于实现对目标url的访问。urllib.request.urlopen(url,data=None,timeout,*,cafile=None,capath=None,cadefault=False,context=None)url 参数:目标资源在网路中的位置。可以是一个表示URL的字符串(如:http:/ cafile、capath、cadefault 参数:用于实现可信任的CA证书的

    6、HTTP请求。(基本上很少用)context参数:实现SSL加密传输。(基本上很少用)网络爬虫的常用技术1 Python实现HTTP网络请求(2)返回处理方法详解urlopen返回对象提供方法:1)read(),readline(),readlines(),fileno(),close():对HTTPResponse类型数据进行操作2)info():返回HTTPMessage对象,表示远程服务器返回的头信息3)getcode():返回Http状态码。如果是http请求,200代码表示请求成功完成;404代码表示网址未找到。4)geturl():返回请求的url网络爬虫的常用技术1 Python

    7、实现HTTP网络请求【例】利用urllib通过urlopen方式读取百度首页。#导入模块from urllib import request#打开指定需要爬取的网页resp=request.urlopen(http:/)#读取网页代码,并输出print(resp.read()网络爬虫的常用技术1 Python实现HTTP网络请求2urllib3库Urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库。Urllib3提供了很多python标准库urllib里所没有的重要特性,比如线程安全、连接池、客户端SSL/TLS验证、文件分部编码上传、协助处理重复请求和HTTP重定位、支

    8、持压缩编码、支持HTTP和SOCKS代理等。安装:安装:pip install urllib3urllib3主要使用连接池进行网络请求的访问,所以访问之前我们需要创建一个连接池对象。网络爬虫的常用技术1 Python实现HTTP网络请求【例】利用urllib3通过request方式读取百度首页#导入模块import urllib3#创建PoolManager对象,用于处理与线程池的连接以及线程安全的所有细节pm=urllib3.PoolManager()#对需要爬取的网页发送请求resp=pm.request(GET,http:/)#读取网页代码,并输出print(resp.data)网络爬虫

    9、的常用技术2 请求headers处理2 请求headers处理有时在请求一个网页内容时,发现无论通过GET或者是POST以及其他请求方式,都会出现403错误。这种现象多数是由于服务器拒绝了您的访问,那是因为这些网页为了防止恶意采集信息,所使用的反爬虫设置。可以通过模拟浏览器的头部信息来进行访问,这样就能解决以上反爬设置的问题。网络爬虫的常用技术2 请求headers处理【例】通过模拟浏览器的头部信息来进行访问示例。#导入模块import requests#创建需要爬取网页的地址url=http:/ NT 6.1;Win64;x64)AppleWebKit/537.36(KHTML,like G

    10、ecko)Chrome/56.0.2924.87 Safari/537.36#发送网络请求resp=requests.get(url,headers=headers)#以字节流形式打印网页源码print(resp.content.decode(utf-8)网络爬虫的常用技术3 网络超时有些网络爬虫的请求可能因为网络原因无法得到响应。因此,我们可以手动设置超时时间。当请求超时后,可以采取进一步措施,例如选择直接丢弃该请求或者再重新请求一次。#导入模块import requests#循环发送请求100次for a in range(1,100):#捕获异常try:#发送网络请求,设置超时为0.5秒

    11、resp =requests.get(https:/,timeout=0.5)print(resp.status_code)except Exception as e:print(异常:+str(e)网络爬虫的常用技术4 代理服务在爬取网页的过程中,经常会出现不久前可以爬取的网页现在无法爬取的情况,这是因为IP被爬取网站的服务器所屏蔽。此时代理服务可以解决该麻烦。#导入模块import requests#设置代理IP与对应的端口号proxy=http:202.205.80.132:8080,https:202.205.80.132:8080#对要爬取的网页发送网络请求resp =request

    12、s.get(https:/,proxy=proxy)print(resp.content)网络爬虫的常用技术5 HTML解析之BeautifulSoupBeautifulSoup是个用于从HTML和XML文件中提取数据的Python库。BeautifulSoup提供一些简单的、函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据。它是一个工具箱,通过解析文档为用户提供需要抓取的数据。Beautiful Soup自动将输入文档转换为自动将输入文档转换为Unicode编码,输出文档转换为编码,输出文档转换为utf-8编码。编码。网络爬虫的常用技术5 HTM

    13、L解析之BeautifulSoup1.Beautiful Soup 的安装推荐使用推荐使用Beautiful Soup 4。导入模块:pip install beautifulsoup4网络爬虫的常用技术5 HTML解析之BeautifulSoup2.解析器的优缺点网络爬虫的常用技术5 HTML解析之BeautifulSoup3.BeautifulSoup的安装 P Pythonython默认是没有安装默认是没有安装BeautifulSoupBeautifulSoup的模块,用的模块,用pippip安装。安装。pip install lxml 对于解析方式选择更为快捷,容错能力强的对于解析方式

    14、选择更为快捷,容错能力强的lxmllxml方式,故还需安装方式,故还需安装lxmllxml。导入模块:pip install beautifulsoup4网络爬虫的常用技术5 HTML解析之BeautifulSoup4.BeautifulSoup的使用(1)导入bs4库,然后创建一个模拟HTML代码的字符串。#导入模块from bs4 import BeautifulSouphtml_doc=中国农业大学Welcome to CAU Good Good Study 网络爬虫的常用技术5 HTML解析之BeautifulSoup(2)创建BeautifulSoup对象,并指定解析器为lxml,最

    15、后通过打印的方式将解析的HTML代码显示在控制台当中。soup=BeautifulSoup(html_doc,features=lxml)print(soup)运行结果:中国农业大学Welcome to CAUGood Good Study 初识网络爬虫初识网络爬虫 网络爬虫的常用技术网络爬虫的常用技术 网络爬虫开发常用框架网络爬虫开发常用框架目录这里说明图片内容 网络爬虫开发常用框架1网络爬虫开发常用框架概述爬虫框架就是一些爬虫项目的半成品,可以将一些爬虫常用的功能写好。然后留下一些接口,在不同的爬虫项目中,调用适合自己项目的接口,再编写少量的代码实现自己需要的功能。Scrapy爬虫框架Py

    16、Spider爬虫框架Crawley爬虫框架网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。scrapy框架的作用是少量的代码,就能够快速的抓取。网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用1.Scrapy的工作流程(1 1)图中带箭头线条表示数)图中带箭头线条表示数据的传递。据的传递。(2 2)注意图中中间件的位置,)注意图中中间件的位置,决定了其使用的时机。决定了其使用的时机。(3 3)注意其中引擎的位置,)注意其中引擎的位置,所有的模块之前相互独立,只所有的模块之前相

    17、互独立,只和引擎进行交互。和引擎进行交互。网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用1.Scrapy的工作流程可以看出可以看出ScrapyScrapy的的3 3个内置对个内置对象:象:1 1)requestrequest请求对象:由请求对象:由url url methodmethod、post_data post_data、headersheaders等构成。等构成。2 2)responseresponse响应对象:由响应对象:由urlurl、bodybody、statusstatus、headersheaders等构等构成。成。3 3)itemitem数据对象:本质是个数据对象:

    18、本质是个字典。字典。网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用2Scrapy主要组件网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用3.Scrapy安装与使用 打开命令提示符窗口,输入打开命令提示符窗口,输入“pip install Scrapy”“pip install Scrapy”命令,安装命令,安装ScrapyScrapy框架框架 安装完成后在命令行中输入安装完成后在命令行中输入“scrapy”“scrapy”来检测来检测ScrapyScrapy中否安装成功中否安装成功。ScrapyScrapy框架在安装的过程中,同时会将框架在安装的过程中,同时会将lxrnllxrn

    19、l与与pyOpenSSLpyOpenSSL模块也安模块也安装在装在PythonPython环境当中。环境当中。网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用4.安装PyWin32模块使用使用windows系统,运行系统,运行Scrapy项目需要项目需要pywin32这个模块,而在这个模块,而在安装安装Scrapy时,并没有安装些模块时,并没有安装些模块。需执行以下代码:。需执行以下代码:pip install pywin32import pywin32_system32网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用5.创建Scrapy项目在任意路径下创建一个保存项目的文件夹,例

    20、如,在在任意路径下创建一个保存项目的文件夹,例如,在“C:PycharmProjects”“C:PycharmProjects”文件夹内运行命令行窗口,然后输入文件夹内运行命令行窗口,然后输入“scrapy startproject scrapyDemoscrapy startproject scrapyDemo”即即可创建一个名称为可创建一个名称为“scrapyDemo”“scrapyDemo”的项目的项目网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用项目打开完成后,左侧项目的目录结构项目打开完成后,左侧项目的目录结构如下:如下:文件作用:文件作用:scrapy.cfg:项目的配置文

    21、件。settings.py:设置文件,UA,启动管道。piplines.py:管道,保存数据。middlewares.py:自定义中间件的文件。items.py:自己预计需要爬取的内容。网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用6.创建爬虫通过命令创建出爬虫文件,爬虫文件为主要的代码作业文件,通常一个通过命令创建出爬虫文件,爬虫文件为主要的代码作业文件,通常一个网站的爬取动作都会在爬虫文件中进行编写。网站的爬取动作都会在爬虫文件中进行编写。在项目路径下执行:scrapy genspider 在创建爬虫时,首先需要创建一个在创建爬虫时,首先需要创建一个爬虫模块爬虫模块的文件,该文件需

    22、要放置在的文件,该文件需要放置在spidersspiders文件夹当中。爬虫模块是用于从一个网站或多个网站中爬取数据的文件夹当中。爬虫模块是用于从一个网站或多个网站中爬取数据的类,它需要继承类,它需要继承scrapy.Spiderscrapy.Spider类类。命令如下:。命令如下:C:PycharmProjectsscrapyDemoscrapyDemoscrapy genspider jszx Created spider jszx using template basic in module:scrapyDemo.spiders.jszx网络爬虫开发常用框架2 Scrapy网络爬虫框架的

    23、使用在通过命令行创建爬虫文件,在在通过命令行创建爬虫文件,在PyCharmPyCharm的目录结构如图的目录结构如图:网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用【例】实现爬取这个网站的首页后将网页的代码以HTML文件保存至项目文件夹当中的功能。with open(index.htm,wb)as f:f.write(response.body)在上述目录结构中的在上述目录结构中的“jszx.py”“jszx.py”的的parse(self,response)parse(self,response)函数中的函数中的passpass语句替换为:语句替换为:C:PycharmProject

    24、sscrapyDemoscrapyDemoscrapy genspider jszx Created spider jszx using template basic in module:scrapyDemo.spiders.jszx网络爬虫开发常用框架2 Scrapy网络爬虫框架的使用在运行在运行ScrapyScrapy所创建的爬虫项目时,需要在命令窗口中输入所创建的爬虫项目时,需要在命令窗口中输入“scrapy crawl scrapy crawl 爬虫名爬虫名”。运行完成以后将显示如图。运行完成以后将显示如图14-914-9所示的信息。所示的信息。本章小结本章首先讲解了爬虫的分类和工作原理,先让大家对爬虫有个基本的认识,然后主要介绍了Python中编写爬虫常用的4个框架:scrapy、pySpider、crawley、pyquery的特性。其中scrapy是经常被使用的爬虫框架,但其它3个框架也各有特点,并介绍了scrapy的使用。思考与练习1.爬虫主要分为那几类?2.说一说聚焦爬虫的工作原理。3.常用的Python爬虫框架有那些?4.利用scrapy爬虫框架,编写一个爬虫去爬取感兴趣的主题网站数据。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Python程序设计课件第14章网络爬虫应用开发.pptx
    链接地址:https://www.163wenku.com/p-3713811.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库