《数据采集技术》课件-项目一 任务3 爬取百度首页_第1页
《数据采集技术》课件-项目一 任务3 爬取百度首页_第2页
《数据采集技术》课件-项目一 任务3 爬取百度首页_第3页
《数据采集技术》课件-项目一 任务3 爬取百度首页_第4页
《数据采集技术》课件-项目一 任务3 爬取百度首页_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

数据采集技术项目一:爬取百度首页项目

背景随着互联网的迅速发展,网络爬虫技术在信息获取、数据处理和分析等领域的应用越来越广泛。本项目旨在通过Python编程实现一个简单的网络爬虫,实现对百度首页的基本信息爬取,包括标题、描述、关键词等,同时可以了解网站的基本结构和信息展示方式,为后续的数据处理及分析提供基础数据和支持。目录01任务一认识爬虫02任务二使用浏览器开发者工具03任务三爬取百度首页任务三:爬取百度首页

任务描述一个爬虫的基本功能是读取URL和抓取网页内容,这就需要爬虫具备能够实现HTTP请求的功能。请求过程包括生成请求、请求头处理、超时设置、请求重试、查看状态码等。通过本任务学习,同学们通过Requests库实现向百度发送GET类型的HTTP请求,并获取百度首页的HTML源代码。任务目标掌握Python爬虫库的安装及使用方法0201了解并搭建基于Python的爬虫环境单击此处添加文本具体内容,文字是您思想的提炼,请尽量简明扼要地阐述您的观点。0403能够使用requests库发起简单请求3.1搭建基础爬虫环境另外一个比较流行的开发环境是Anaconda。Anaconda比较庞大,但却是一个十分强大的Python开发环境。它自带Python的解释器,也就是说,安装Anaconda时会自动

Python。同时,Anaconda带有一个功能强大的IDE一Spyder。Anaconda最大的优点之一是可以帮助用户找到Python的各种库,从而使得Python的开发十分方便与高效。同学们可以到官网下载Anaconda。3.AnacondaPython的开发环境十分简单,安装完成后启动Python,即可看到Python的命令行窗口。这个环境是命令行环境,只能运行一些简单的测试语句,不能用来编写程序。另外也可以启动Python自带的IDE,但是这个IDE的功能十分有限,不适合开发Python工程项目。1.Python自带的开发环境一个比较流行的开发环境是PyCharm,它是专门为Python开发的IDE,具有很多功能,如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。2.PyCharm020103主流的开发环境3.1.1基础HTTP库

支持异步请求的HTTP库,兼容requests的API,支持HTTP/2和WebSocket,适用于高性能的异步网络请求场景。Python中最常用的HTTP库,提供简洁的API,支持HTTP/1.1和HTTP/2协议,广泛应用于网络爬虫、API调用等场景。Python标准库中的HTTP库,包含多个模块,功能全面但使用较为复杂,适合对HTTP协议有深入理解的开发者。urllibhttpxrequests3.1.1基础HTTP库

①urllib在Python2.x版本中有urllib库和urllib2库;在Python3.x版本中把urllib库和urllib2合成为一个urllib库;urllib3库是在Python3.x版本中新增的第三方扩展库urlliburllib、urllib2、urllib3、requests区别②urllib2是Python2.x的http访问库,是Python的内置标准库;urllib库同样是Python的内置标准库urllib2③urllib3是一个基于Python3.x版本的功能强大、友好的HTTP访问库,许多Python的原生系统已经开始使用urllib3库,其提供了许多Python标准库里没有的重要特性urllib3④requests库是第三方http访问库,需要安装requests3.1.2urllib可以实现HTTP请求的发送,而且不需要关心HTTP协议本身甚至更底层的实现,我们要做的是指定请求URL、请求头、请求体等信息,还可以把服务器返回的响应转化为Python对象,通过该对象可以方便地获取响应的相关信息,如响应状态码、响应头、响应体等。Python内置的HTTP请求库,不需额外安装,可直接使用。

02013.2.2urllib的使用①request:最基本的HTTP请求模块,可以模拟请求的发送(就像在浏览器里输入网址然后回车,只需要给库方法传入URL以及参数,即可模拟)。urllib库包含四个模块:②error:异常处理模块(如果出现请求异常,可以捕获异常,然后进行重试或其他操作以保证程序运行不会意外终止)。④robotparser:主要用来识别网站的robots.txt文件,然后判断哪些能爬,哪些不能爬(用得较少)0204③parse:工具模块,提供了许多URL的处理方法(拆分、解析、合并等)。01033.1搭建基础爬虫环境1、urllib.request模块(发送请求)

提供了最基本的构造HTTP请求的方法,利用这个模块可以模拟浏览器的请求发起过程,同时还具有处理授权验证(Authentication)、重定向(Redirection)、浏览器Cookie以及其他一些功能。具体用法:①urlopen

最基本的方法,可以完成简单的网页的GET请求抓取。

实例:以淘宝为例,抓取网页——输出HTML源代码3.1搭建基础爬虫环境urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)data参数:可选,在添加该参数时,需要使用bytes方法将参数转化为字节流编码格式的内容,即bytes类型,另外,如果传递了这个参数,那么它的请求方式就不再是GET,而是POST。timeout参数:用于设置超时时间,单位为秒,即超出时间无响应即抛出异常urlopen方法的API:3.1搭建基础爬虫环境实例:站点可提供HTTP请求测试。3.1搭建基础爬虫环境②Request类(构造请求)3.1搭建基础爬虫环境实例:传入多个参数尝试构造Request类方法一:headers参数3.1搭建基础爬虫环境方法二:使用add_headers方法添加headers3.1搭建基础爬虫环境2、Error模块-异常处理(由request模块产生的异常)①URLError类-继承自OSError类,是Error异常模块的基类。—具有一个属性reason,即返回错误的原因实例【1-1】:URLError3.1搭建基础爬虫环境②HTTPError

URLError的子类,专门用来处理HTTP请求错误,如认证失败。注:有时候,reason属性返回的不一定是字符串,也可能是一个对象。3.1搭建基础爬虫环境3、urllib.parse模块(解析链接)①urlparse-实现URL的识别和分段实例【1-2】:urlparse3.1搭建基础爬虫环境②urlunparse--构造URL(接收的参数是一个可迭代对象,长度必须是6)实例【1-3】:urlunparse3.1搭建基础爬虫环境③urlsplit-与urlparse方法非常相似,但不再单独解析params这一部分(合并到path中)实例【1-4】:urlsplit3.1搭建基础爬虫环境④urlunsplit-与urlunparse类似,唯一区别:长度必须是5。实例【1-5】:urlunsplit3.1搭建基础爬虫环境⑤urljoin-链接合并(基础链接+新链接)—会分析基础链接的scheme、netloc和path这三个内容,并对新链接缺失的部分进行补充实例【1-6】:urljoin⑥urlencode-构造GET请求参数时常用实例【1-7】:urlencode3.1搭建基础爬虫环境3.1搭建基础爬虫环境⑦parse-qs-反序列化(将一串GET请求参数转回字典)

实例【1-8】:parse-qs⑧parse-qsl-用于将参数转化为由元组组成的列表

实例【1-9】:parse-qsl3.1搭建基础爬虫环境3.1搭建基础爬虫环境⑨quote-可以将内容转化为URL编码的格式

实例【1-10】:quote3.1搭建基础爬虫环境⑩unquote-进行URL解码

实例【1-11】:unquote3.1搭建基础爬虫环境②read-读取robots.txt文件并进行分析(如果不调用这个方法,接下来的判断都会为False,记得调用)02①set-url-用来设置robots.txt文件的链接(如果在创建RobotFileParser对象时传入了链接,那么就不需要再使用这个方法设置了)01③parse-用来解析robots.txt文件(传入的参数是robots.txt某些行的内容,它会按照robots.txt的语法规则来分析)034、urllib.robotparser模块(解析robots.txt文件)3.1搭建基础爬虫环境1、Requests库1、urllib库与Requests库对比

实例【1-12】:get请求2、Requests库使用1)GET请求实例【1-13】:get请求--返回相应的请求信息3.1搭建基础爬虫环境3.1搭建基础爬虫环境实例【1-14】:利用params参数为get请求附加信息3.1搭建基础爬虫环境

实例【1-15】:抓取网页3.1搭建基础爬虫环境注:前面的实例未设置请求头,这样的话,某些网站会发现这不是一个由正常浏览器发起的请求,于是可能会返回异常结果导致网页抓取失败。②抓取二进制数据

实例【1-16】:抓取二进制数据实例【1-17】:二进制抓取图片3.1搭建基础爬虫环境③添加请求头(使用headers参数)

实例【1-18】:添加请求头2)POST请求

实例【1-19】:POST请求3.1搭建基础爬虫环境3)响应实例【1-2

温馨提示

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

评论

0/150

提交评论