版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目1爬虫入门——认识与使用网络爬虫任务1.1认识爬虫1.1.1
爬虫介绍网络爬虫又称网络机器人、网络蜘蛛,是一种遵循既定规则、能够自动提取网页信息的程序。它的目地在于将目标网页数据下载至本地,以便开展后续数据分析。网络爬虫在信息搜索和数据挖掘过程中扮演着重要的角色,相关研究始于20世纪,目前爬虫技术已趋于成熟。需要注意的是:网络爬虫的行为可具体分为技术使用行为和数据使用行为,两种行为均可能引发刑事法律问题,甚至构成犯罪。
网络爬虫是一种数据收集技术,广泛应用于搜索引擎、市场分析等领域。网络爬虫运行机制如下。(1)获取初始的URL。初始的URL地址可以由用户直接指定,也可以由用户指定的一个或多个初始爬取网页决定。(2)根据初始的URL爬取页面并获取新URL。获取初始URL地址后,首先需要爬取对应URL地址中的网页,爬取完成后将网页存储到原始数据库中。同时,在爬取网页过程中发现新的URL地址,并将已爬取的URL地址存入一个URL列表中,用于去重及判断爬取进度。(3)满足爬虫系统设置的停止条件时,停止爬取。在编写爬虫时,通常会设置相应的停止条件。如果未设置停止条件,则爬虫会持续爬取,直到无法获取新的URL地址为止;若已设置停止条件,则爬虫会在停止条件满足时停止爬取。1.1.2爬虫运行机制1.1.3
网络爬虫的应用
随着互联网信息的“爆炸”式增长,网络爬虫渐渐为人们所熟知,并被应用于社会生活的众多领域。作为一种自动采集网页数据的技术,大多数依赖数据支撑的应用场景都离不开网络爬虫,包括搜索引擎、舆情分析与监测、聚合平台、出行类软件等。用户借助爬虫软件可以爬取各大门户网站及各类电子报刊的新闻。例如,用户可以爬取百度新闻中与某个关键字相关的信息,并于每周梳理出若干关键词,以把握行业的最新动向。任务1.2认识HTTP的请求与响应1.2.1
HTTP组成HTTP由两部分组成:请求和响应。当用户在Web浏览器中输入URL时,浏览器将根据要求创建并发送请求,该请求包含所输入的URL及一些与浏览器本身相关的信息。当服务器收到这个请求后,将返回一个响应,该响应包括与该请求对应的信息及指定URL(如果存在)对应的数据。请求
每个用户打开的网页,最初都需要由用户向服务器发送访问请求(Request)。一般来讲,一个HTTP请求报文由请求行(requestline)、请求头(headers)、空行(blankline)和请求数据(requestbody)4部分组成。响应
服务器在接收用户请求后,会验证请求的有效性,随后向客户端发送相应内容。客户端在接收服务器返回的内容后,将其展示给用户,以供浏览。
服务器返回的响应(Response)通常包含以下内容:状态码、响应头和响应体。
响应头提供了关于响应的元数据,如内容类型(Content-Type)、内容长度(Content-Length)、缓存控制等。
响应体包含实际数据,如HTML文档、图片二进制数据、JSON对象等。通过response.text可以获取是响应体的文本形式,适用于HTML、XML等文本类数据。任务1.3安装并使用Python扩展库1.3.1认识PythonPython是一种计算机程序设计语言,属于面向对象的动态类型语言。Python是完全面向对象的语言,函数、模块、数字、字符串都是对象。它完全支持继承、重载、派生、多继承及有助于提升源代码的复用性。1.3.2安装Python读者可以直接登录Python官网直接下载安装程序包,并将其安装到本地计算机中。安装完成后,启动Python3,在程序编译环境中输入以下程序:print("Hi,MyFirstPythonApplication!")
按Enter按钮,即可看到运行结果,如图1-1所示。本书可使用Python3。7及其以上版本1.3.3
Python基本语法Python的语句具有独特风格,它不像其他许多语言那样用成对的{}花括号包裹待执行语句,而是通过语句右侧的缩进来界定执行范围,这是Python的标志性巨特点。
在Python的编译环境中,需要缩进的语句会自动完成缩进;用户也可以手动按Tab键或空格键实现缩进。name=input("pleaseenteryourname:")print("hello,"+name+"!")
运行结果如下:
pleaseenteryourname:owenhello,owen!1.3.3
Python基本语法sum=1fornuminrange(1,4):sum+=numprint(sum)
运行结果为:7。defmax(a,b):c=aifb>a:c=breturnca=input("a=")b=input("b=")c=input("c=")a=int(a)b=int(b)c=int(c)d=max(a,b)e=max(d,c)print("max=",e)1.3.4
认识Python爬虫库
在Python中,存在多个库可用于构建爬虫以抓取网页数据的爬虫库,这些库各有其特点与适用场景。
1.UrllibUrllib是Python标准库的一部分(无须安装),它提供了一系列处理URL的功能,包括打开和读取URL、处理HTTP请求、解析URL等,非常适合用于简单的网络请求操作。2.RequestsRequests是第三方HTTP库,因易用性强、功能强大而广受青睐。它简化了,如发送GET或POST请求、管理Sessions、上传文件等复杂操作。3.BeautifulSoupBeautifulSoup用于解析HTML和XML文档,常与Requests搭配使用以提取网页信息。它能将复杂的HTML文档转换为树形结构,并提供简洁的API,方便开发者导航和搜索这文档节点。1.3.4
认识Python爬虫库
4.lxmllxml是高效的HTML或XML解析库,解析速度优于BeautifulSoup,但使用难度稍高。5.SeleniumSelenium是强大的工具集,主要用于自动化Web浏览器的操作,适用于需要与网页交互的场景,尤其擅长处理通过JavaScript动态加载内容的网站。6.ScrapyScrapy是Python开源网络爬虫框架,专为高效抓取网站数据、提取结构化信息设计,能便捷处理大量数据,适合构建大规模爬虫应用。此外,Scrapy还支持异步获取网页内容,可高效开发处理多个请求。7.PyQueryPyQuery是Python库,提供类似于JQuery的语法风格,用于解析HTML文档并执行元素查找、HTML结构修改等操作。1.3.5
安装Python爬虫库大多数Python爬虫库可以通过pip包管理工具来安装。安装前需要确保已经安装Python,并且环境变量配置正确,这样才能在命令行中直接使用pip命令。1.安装爬虫库安装爬虫库的基本命令如下:
pipinstall库名
例如,安装Requests,命令如下:
pipinstallrequests
安装BeautifulSoup,命令如下:
pipinstallbeautifulsoup4
安装lxml,命令如下:
pipinstalllxml1.3.5
安装Python爬虫库2.管理爬虫库安装完成后,可以通过以下命令查看当前环境中已安装的所有Python爬虫库:
piplist
如果想将某个库升级至最新版本,则可以使用以下命令:
pipinstall--upgrade包名
例如,升级Requests:
pipinstall--upgraderequests
此外,也可以指定库的具体版本。例如,将Urllib的版本设置为1.25.11:
pipinstallurllib3==1.25.111.3.5
安装Python爬虫库3.使用爬虫库在Python中运行爬虫库时,可以直接输入命令导入:
import库名
常见的爬虫库导入语句如下:
importrequests
该库用于发送GET、POST等类型的HTTP请求,获取网页内容(包括HTML、JSON、图片等)。任务1.4利用Python实现网络爬虫1.4.1运行Python爬虫库1.Urllib导入Urllib:
importurllib.requesturl=/ #要抓取的目标网页地址html=urllib.request.urlopen(url) #向服务器发送GET请求并返回一个响应对象html=html.read() #读取原始字节流html=html.decode() #将字节流转换为字符串print(html) #打印整个页面源代码
在Pyhon中运行以上程序即可查看结果。1.4.1运行Python爬虫库2.Requests导入Requests:
importrequestsurl=http://localhost:8080/2.html #访问的目标地址,是本地测试服务器上的HTML页面strhtml=requests.get(url) #使用
requests.get
方法向指定URL发送GET请求strhtml.encoding='utf-8' #设置响应内容的编码为UTF-8,避免中文显示乱码print(strhtml.text)
在Pyhon中运行该程序即可查看结果。1.4.1运行Python爬虫库需要确保本地测试服务器已启动,并且2.html文件存在于指定路径下,否则程序会抛出异常或返回404错误。如果目标服务器正常运行、页面路径正确,则程序会输出类似以下的HTML内容:
<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>我的第二个网页</title></head><body><h1>HelloWorld!</h1><p>这是一个测试页面。</p></body></html>
1.4.2利用Python实现网页请求与响应网页请求的方式一般分为两种:GET和POST。GET是常见的请求方式,主要用于获取或查询资源信息,也是大多数网站的默认请求方式。POST请求通常用于向服务器提交数据,典型场景包括用户注册、登录、表单提交等。当在网站上填写注册表单并单击“提交”按钮时,通常会触发POST请求。1.4.2利用Python实现网页请求与响应(1)使用GET方式爬取网页:
importrequestsurl='/get'data={'name':'messi','age':'35'}response=requests.get(url,params=data)print(response.url) #输出请求地址print(response.text) #输出响应内容
上述程序中使用的网址是专门用于测试的网站,运行结果如图1-4所示。1.4.2利用Python实现网页请求与响应(2)使用Requests发送POST请求:
importrequestsdata={'key1':'value1','key2':'value2'}response=requests.post('/post',data=data)print(response.text)
运行结果如图1-5所示。1.4.2利用Python实现网页请求与响应(3)使用Requests发送一个包含文件上传的POST请求:
importrequestsurl='/post'files={'file':open('Iris.csv','rb')}response=requests.post(url,files=files)print(response.text)1.4.2利用Python实现网页请求与响应(4)查看网页请求和响应代码:importrequests#发送GET请求response=requests.get('')#打印状态码print("状态码:",response.status_code)#根据状态码做出不同反应ifresponse.status_code==200:print("请求成功!")elifresponse.status_code==404:print("未找到页面。")elifresponse.status_code==500:print("服务器内部错误。")else:print(f"收到其他状态码:{response.status_code}")
运行结果如图1-7所示。1.4.3分析网页结构1.明确目标首先需要明确要从网页中提取哪些数据。例如,当分析新闻网站时,可能需要获取标题、作者、发布日期等信息。2.分析网页源代码使用浏览器的查看页面源代码功能查看完整的HTML源代码。操作方式通常为:右击网页空白处,在弹出的快捷菜单中选择“查看网页源代码”选项,或者直接按快捷键Ctrl+U。项目实战读取网页数据【任务描述】制作一个网页,并使用Python读取其在HTTP服务器中的网页数据。使用Python3搭建简单本地服务器十分便捷。从Python3.0起,使用者可以通过http.
server模块快速启动HTTP服务器,具体步骤如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第三章3.1 同余的概念及其基本性质
- 先心病封堵技术
- 呼吸系统-鼻、喉、气管
- 安全生产月活动动员会
- 第章现代软件工程概述课件
- 思想状况调查报告2026(3篇)
- 漳州市南靖县南坑镇社区工作者招聘考试题目
- 潮州市潮安区登塘镇社区工作者招聘考试题目
- 长方体体积教学设计
- 房地产 -2025保利XXX湖第四代住宅探盘视频脚本文案
- 万家寨水务控股集团所属企业招聘笔试真题2025
- 2026年6月山东中医药大学附属医院合同制工作人员招聘(97人)考试参考题库及答案详解
- 2026上海市宝山区融媒体中心招聘专业技术人员6人备考题库及答案详解1套
- 市政工程商务培训课件
- 2025年压片糖果项目市场调查研究报告
- 动车组塞拉门54课件
- GB/T 17643-2025土工合成材料聚乙烯土工膜
- 【MOOC】物理与艺术-南京航空航天大学 中国大学慕课MOOC答案
- 配电网工程总监理工程师理论考核试题
- 员工培训论文开题报告书
- 急腹症的护理
评论
0/150
提交评论