版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章网络爬虫基础知识学习目标知识目标(1)深入理解浏览器加载网页的详细过程及其内在机制。(2)全面了解网页的基本构成要素、相关技术与架构等基础知识。(3)牢固掌握HTTP协议的核心概念、原理、请求与响应机制等基础知识。(4)对Google开发者工具的功能、用途与操作方法有清晰的认知。学习目标能力目标(1)能够区分网页数据的多种不同格式,并能依据格式特点进行有效处理与分析。(2)能够总结网络HTTP基础知识,构建完整的知识体系并能灵活运用。(3)能够构建网络爬虫工作流程的整体认知框架,理解各环节的关键作用与相互关系。素质目标(1)通过学习网页基础知识,深刻领悟基本的网络原理与知识体系,熟练掌握常见的网络相关概念及其内涵。(2)熟练运用常见的HTML标签和属性,精通CSS选择器的使用技巧与应用场景。(3)在网络爬虫的实践应用过程中,牢固树立相关的法律法规和道德准则意识,自觉规范行为,确保合法合规操作。思维导图章节内容行业PPT模板/hangye/2.22.32.4网页基础知识HTTP基础知识Google开发者工具2.5综合案例-采集2024中国大学排名2.1浏览器加载网页的过程PATR01浏览器加载网页的过程网页基础知识关键概念2.1HTML(HypertextMarkupLanguage)HTML作为一种标记语言,用于构建网页的结构与内容框架。其文档由一系列HTML标签构成,各标签负责界定页面的不同组成部分,诸如标题、段落、链接等元素CSS(CascadingStyleSheets)CSS专注于描述网页的样式呈现与布局规划,能够为HTML元素赋予丰富多样的样式属性,涵盖字体样式、颜色设定、布局模式等方面JavaScript属于脚本语言,主要用于实现网页的交互功能与动态效果展示。通过JavaScrip能够灵活操作DOM及时响应用户的各类操作行为,并有效进行数据交互处理DOM(DocumentObjectModel)DOM是HTML和XML文档的编程接口,它将文档以树状结构进行表征,其中每个节点均对应文档中的一个特定元素HTTP(HypertextTransferProtocol)HTTP是在Web浏览器与服务器之间进行数据传输的协议规范。浏览器借助HTTP协议向服务器发起网页资源请求,服务器则依据该协议响应并传输相应数据资源HTTPS(HypertextTransferProtocolSecure)HTTPS是HTTP的安全增强版本,通过在HTTP基础上融入SSL/TLS协议,达成对传输数据的加密处理与通信双方的身份验证,显著提升通信过程的安全性与保密性URL(UniformResourceLocator)URL作为用于定位与访问Web资源的地址标识,涵盖协议类型(如http或https)、域名、路径等关键信息要素DNS(DomainNameSystem)DNS负责将域名映射为对应的IP地址。在浏览器加载网页时,需进行DNS解析操作,以将用户输入的域名转换为服务器的实际IP地址,从而建立有效的网络连接TCP(TransmissionControlProtocol)TCP是一种传输层协议,其核心作用在于保障网络上数据传输的可靠性与稳定性。浏览器与服务器之间通过建立TCP连接来实现HTTP请求与响应的可靠传输。浏览器加载网页的过程2.1PATR02网页基础知识网络开发技术-前端开发技术2.2.1123
3HTML/CSS/JavaScriptHTML用于界定网页的结构框架,涵盖标题、段落、链接、表单等基础元素。CSS负责网页的视觉呈现与布局样式设定。JavaScript为网页赋予动态交互特性,可响应诸如用户点击、输入、滚动等操作行为。前端框架和库React:由Facebook开发的用于构建用户界面的JavaScript库,支持组件化开发模式。Angular:Google开发的完整前端框架,配备一整套工具与架构体系,适用于构建大型单页应用程序。Vue.js:一款渐进式JavaScript框架,具有易于上手的特性,能够迅速搭建交互式界面。Ajax(AsynchronousJavaScriptandXML)可在不重新加载整个网页的情形下,与服务器异步交互数据的技术手段,显著优化了用户体验,使网页能够局部动态更新内容而无需整页刷新。网络开发技术-后端开发技术2.2.1MySQL一个流行的关系型数据库管理系统,用于存储结构化数据MongoDB一种NoSQL数据库,适用于存储和处理非结构化或半结构化数据SpringSpring是基于Java的后端开发框架,广泛应用于企业级开发。它提供了一整套解决方案,包括依赖注入、AOP、事务管理等。Spring的核心模块包括SpringCore、SpringMVC和SpringBoot等,适用于构建高度可维护和扩展的应用。Node.jsNode.js是一个基于JavaScript的后端开发环境,允许在服务器端运行JavaScript代码。它采用事件驱动和非阻塞I/O模型,特别适合高并发应用,如实时聊天或流媒体服务DjangoDjango是基于Python的Web框架,提供了大量内置功能,如ORM、表单处理和用户认证,并且自带一个强大的管理后台。它遵循MVC模式,旨在快速开发复杂的Web应用程序FlaskFlask也是基于Python的Web框架,提供一个轻量级、灵活的开发环境。与Django相比,Flask更加简洁,允许开发者根据需要集成其他库,适合中小型项目和需要高度自定义的开发RubyonRails一个基于Ruby语言的Web框架,采用"约定优于配置"的原则,通过简化配置工作来提高开发效率。它提供了ORM功能,并适用于快速构建Web应用程序后端技术数据库技术APIAPI定义了不同软件组件如何相互通信,用于不同软件组件之间进行通信和交换数据的接口WebSocketWebSocket是一种能够在单个TCP连接上实现全双工通信的协议,特别契合实时性要求较高的应用场景,如在线聊天和实时通知等功能的实现服务器管理工具如Docker和Kubernetes,用于应用程序的部署、管理与扩展操作,有助于提升运维效率与系统可靠性安全性和身份验证采用诸如加密、OAuth等技术确保数据安全性,有效防范数据泄露与非法访问风险通信与安全技术网页的结构2.2.2-01-<!DOCTYPEhtml>HTML文档声明-02-<htmllang="en">根元素<html>标签是整个HTML文档的根元素,所有的网页内容都必须包含在<html>和</html>标签之间。该元素通常带有语言属性,如lang="en",用于指定文档的语言。-03-<head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>MyWebPage</title></head>头部元素<head>标签是HTML文档的头部元素,包含网页的元数据(metadata),包含标题(<title>)、字符集声明(<metacharset=“UTF-8”>)、视口设置(<metaname=“viewport”>),以及通过<link>和<script>标签引入外部样式表和脚本文件网页的结构2.2.2-05-<p>Thisisaparagraphoftext.</p>段落元素段落元素<p>用于定义文本文段,它是网页中最基本的文本块标签。每个段落之间会有默认的空隙,以便清晰展示内容-04-<body></body>主体元素<body>标签是HTML文档的主题元素,包含了网页的主要可见内容,如文本、图像、链接等。爬虫在抓取数据时,主要是从<body>部分提取信息,因为这是用户实际浏览时看到的内容-06-<h1>这是一级标题(h1)</h1><h2>这是二级标题(h2)</h2><h3>这是三级标题(h3)</h3><h4>这是四级标题(h4)</h4><h5>这是五级标题(h5)</h5><h6>这是六级标题(h6)</h6>标题元素HTML提供了六级标题元素(<h1>到<h6>),用来定义网页的标题层次网页的结构2.2.2-08-<ahref="">VisitE</a>链接元素链接通过<a>标签定义,href属性指定链接的目标地址-07-<ul><li>Item1</li><li>Item2</li></ul>列表元素HTML提供两种常用的列表:(1)有序列表(<ol>):带有序号的列表。(2)无序列表(<ul>):使用圆点符号的列表。列表项由<li>标签定义。-09-<imgsrc="example.jpg"alt="ExampleImage">图像元素图像通过<img>标签插入网页,src属性指定图像文件的路径,alt属性提供替代文本,用于当图像无法显示时提示用户网页的结构2.2.2-10-<table><tr><th>Header1</th><th>Header2</th></tr><tr><td>Data1</td><td>Data2</td></tr></table>表格元素表格使用<table>标签定义,由表格行(<tr>)、表格单元格(<td>)和表格标题(<th>)组成。表格常用于结构化数据的展示。网页的结构2.2.2-11-<formaction="/submit"method="post"><inputtype="text"name="username"placeholder="Enteryourname"><buttontype="submit">Submit</button></form>表单元素表单通过<form>标签定义,包含输入字段、按钮、下拉菜单等元素,通常用于用户提交数据。表单是网络爬虫常见的数据提交和抓取来源。-12-<!--Thisisacomment-->注释注释通过<!--注释内容-->添加,不会在网页中显示。它们用于对HTML代码进行说明,方便开发者阅读和维护。网页的结构2.2.2-一个简单的HTML网页结构-<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>MyWebPage</title></head><body><h1>WelcometoMyWebPage</h1><p>Thisisaparagraphoftest</p><ul><li>Item1</li><li>Item2</li></ul><imgsrc="example.jpg"alt="ExampleImage"><ahref="">VisitE</a></body></html>2.2.3网页的分类类型优点挑战适用场景静态网页结构简单、加载速度快、爬取容易。无动态生成过程,爬虫易抓取。公司简介、个人博客、小型网站等。动态网页能够实时生成个性化内容。爬虫需要处理页面的动态生成过程,或通过API获取数据。电子商务网站、社交媒体平台、内容管理系统等。响应式网页跨设备优化,用户体验一致。可能存在布局差异,爬虫需要确保提取的是正确内容。企业官网、电商平台、新闻网站等。单页应用用户体验更流畅,减少了页面跳转。依赖JavaScript进行内容加载,爬虫需模拟浏览器行为或分析API请求。实时应用、社交媒体、复杂的Web应用程序等。网页的分类这些网页分类之间并非相互隔绝、界限分明。一个网站往往能够同时展现出多种不同的特性.以一个典型的现代化电子商务网站为例,有可能借助动态网页技术来达成个性化商品推荐的功能,同时,还可能采用响应式设计理念,以确保网站页面在各类移动设备上都能够实现良好的适配效果,此外,在网站的部分页面中,还可能运用单页应用技术,从而实现更为流畅的用户交互过程,减少页面刷新带来的等待时间与视觉中断,使用户在浏览商品详情、进行购物车操作等过程中感受到无缝衔接的流畅性。2.2.3网页数据的格式2.2.4HTML作为网页的基础结构格式,借助标签对文本、图像等内容予以组织并呈现。HTML的树状结构(DOM树)对于网络爬虫意义重大1.HTML图2-3HTML文档结构示意图CSS主要用于管控网页的样式与布局,开发者可借此定义网页元素的外观特性,诸如字体、颜色、间距、对齐方式等。在解析网页时,爬虫需要明晰CSS类名和ID选择器的效用,以便精准定位HTML中的特定元素2.CSS/*设置页面背景颜色*/body{background-color:#f0f0f0;font-family:Arial,sans-serif;}/*设置标题的样式*/h1{color:#2c3e50;font-size:36px;text-align:center;margin-bottom:20px;}/*设置按钮样式*/button{background-color:#3498db;color:white;padding:10px20px;border-radius:5px;cursor:pointer;}网页数据的格式2.2.4JavaScript通过操作DOM,实现对网页内容的动态修改、响应用户操作以及异步加载数据等功能。由JavaScript生成的动态内容对网络爬虫构成一定挑战,尤其针对那些依赖JavaScript加载的数据,通常要求爬虫配合模拟浏览器行为(如借助Selenium工具)或直接抓取JavaScript请求的数据源,方可实现有效数据采集。3.JavaScript<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>JavaScript示例</title></head><body><h1>欢迎使用JavaScript示例</h1><buttonid="myButton">点击我</button><script>//获取按钮元素
constbutton=document.getElementById('myButton');//为按钮添加点击事件
button.addEventListener('click',function(){alert('按钮已被点击!');});</script></body></html>网页数据的格式2.2.4JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,普遍应用于客户端与服务器之间的数据传输作业。它以键值对的形式组织数据,具备易于阅读、编写以及便于机器解析和生成的特性。在网络爬虫抓取动态网页时,常常需处理JSON格式的数据,例如通过API接口获取信息。JSON的结构化特点使其极为适合存储与传输复杂的嵌套数据。4.JSON{"name":"John","age":30,"city":"NewYork"}网页数据的格式2.2.4XML(eXtensibleMarkupLanguage)属于一种可扩展的标记语言,广泛应用于描述与传输数据。与HTML类似,XML同样运用标签定义数据,但更侧重于数据的结构化描述,而非展示功能。XML常见于Web服务的数据交换场景,网络爬虫可通过解析XML获取并处理结构化数据右侧是一个简单的XML示例,表示一本书的信息,<bookstore>是根元素,包含多个<book>元素。每个<book>元素包含书名<title>、作者<author>、出版年份<year>和价格<price>等子元素。在<title>元素中,使用了lang属性来表示书名的语言(例如"en"表示英文,"zh"表示中文)5.XML<?xmlversion="1.0"encoding="UTF-8"?><bookstore><book><titlelang="en">LearningXML</title><author>JohnDoe</author><year>2024</year><price>29.99</price></book>
<book><titlelang="zh">学习XML</title><author>张伟</author><year>2023</year><price>39.99</price></book></bookstore>网页数据的格式2.2.4CSV是一种简单的文本格式,用于存储表格数据。每一行代表一条记录,每个字段之间由逗号分隔。CSV格式被广泛用于数据导出和导入,因其结构简单且易于解析,网络爬虫在处理数据表格时,可能会遇到以CSV格式提供的数据文件。6.JSONName,Age,CityJohn,30,NewYorkRDF(ResourceDescriptionFramework)是一种用于描述资源及其关系的数据模型,主要应用于语义网技术领域。RDF格式的数据不仅能够呈现资源的属性,还可表达资源之间的关联关系,常见于知识图谱、语义搜索等高级应用场景。尽管RDF在常规网页中的应用相对较少,但在特定领域(如图书馆数据或LinkedData)却具有重要地位。7.RDF<?xmlversion="1.0"?><rdf:RDFxmlns:rdf="/1999/02/22-rdf-syntax-ns#"xmlns:dc="/dc/elements/1.1/"><!--资源URI表示一本书--><rdf:Descriptionrdf:about="/book/12345"><dc:title>LearningRDF</dc:title><dc:creator>JohnDoe</dc:creator><dc:date>2024</dc:date><dc:language>en</dc:language><dc:publisher>ExamplePublisher</dc:publisher></rdf:Description></rdf:RDF>网页数据的格式2.2.4Markdown作为一种轻量级标记语言,常被用于编写格式简单的文档,如README文件或博客文章等。它能够便捷地转换为HTML格式,进而在网页上予以显示。Markdown在开发者社区应用广泛,尤其在内容管理系统和文档工具领域,其简洁性与易用性使其成为众多静态网页生成器的首选格式。8.Markdown#Heading1##Heading2-Listitem1-Listitem2不同格式的网页数据在各自的应用场景中均发挥着重要作用。网络爬虫在实际操作过程中,需依据网页所采用的不同数据格式,选取适宜的解析与处理方式。例如,爬虫可直接解析HTML结构以提取内容,亦能通过剖析JSON或XML数据接口抓取动态生成的数据。理解这些常见数据格式有助于爬虫更高效地进行数据采集和处理。PATR03HTTP基础知识URL简介2.3.1片段标识符以#开头,标识资源中的特定部分,常用于直接跳转到页面中的特定位置。协议(Protocol)指定访问资源所使用的协议,例如HTTP、HTTPS、FTP等)主机(Host)表示资源所在服务器的域名或IP地址,如。它指向资源的存储位置路径(Path)表示服务器上资源的具体位置,通常类似于文件系统中的文件路径查询参数包含在URL中的键值对,用于传递额外信息,如搜索关键字或过滤条件。它们以?开头,多个参数用&分隔端口(Port)用于指定连接到主机的端口号,是可选的。:8080/path/to/resource?param1=value1¶m2=value2#section1示例:HTTP与HTTPS2.3.2HTTPSHTTPHTTP(超文本传输协议)是客户端与服务器之间传输数据的标准协议HTTP依托TCP/IP通信协议来传递网页数据,涵盖HTML文件、图像、查询结果等各类信息HTTP的主要特性为无状态性,即每个请求均相互独立HTTP的URL以“http://”开头,默认借助端口80开展通信HTTP传输的数据呈明文形式,未施加加密保护措施,故而易于被截取或窃听,不适宜用于传输敏感信息,诸如登录凭据、信用卡号等HTTPS是HTTP的安全强化版本,具备加密与身份验证机制,保障数据在传输进程中的安全性借助TLS或SSL对数据进行加密处理,有效防止数据在传输途中被窃取或篡改HTTPS的URL以“https://”开头,适用于需要保护用户隐私和敏感数据的场景,如登录页面、在线支付平台等。随着互联网安全需求的提升,HTTPS已经成为默认标准,提供了更高的保护,减少了数据泄露的风险。因此,在进行网络爬虫设计时,特别是在抓取需要登录的网站时,了解并使用HTTPS至关重要。HTTP请求格式2.3.3
04
03
02
01请求行作为HTTP请求的起始行,涵盖三个核心部分:请求方法:GET、POST、PUT、DELETE请求的资源路径(URL):明确指示所请求资源在服务器端的具体路径所使用的协议版本:指定当前请求所采用的HTTP版本,如HTTP/1.1
请求行请求头部包含一系列键值对,Host:用于指定请求的目标主机名User-Agent:提供客户端的浏览器类型以及操作系统相关信息Accept:指示客户端能够处理的响应内容类型请求头部在请求头部和请求体之间,有一个空行用于分隔它们。这个空行非常重要,标志着请求头部的结束和请求体的开始
空行请求体主要用于承载要发送给服务器的数据,通常在POST或PUT请求中发挥作用。请求体可包含多种格式的数据,如表单数据、JSON数据
请求体GET/index.htmlHTTP/1.1Host:User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/91.0.4472.124Safari/537.36Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8username=johndoe&password=pass123HTTP请求示例在例2-25中,请求行表示客户端使用GET方法请求服务器上的/index.html资源,使用的协议版本为HTTP/1.1。请求头部包含了主机信息、客户端信息(如浏览器类型),以及客户端可接受的响应格式。在例2-25中没有请求体,因为GET请求通常不包含请求体,但对于POST等其他方法,请求体可能包含用户提交的数据理解HTTP请求格式是编写和调试网络爬虫的重要基础。通过准确构造HTTP请求,爬虫可以有效地与服务器进行通信,获取所需的数据。实际的HTTP请求可能会包含更多的头部信息和请求体内容,这取决于具体的请求类型和用途2.3.3GET/index.htmlHTTP/1.1Host:User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/91.0.4472.124Safari/537.36Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8HTTP响应格式2.3.4
04
03
02
01状态行包含了HTTP协议版本、状态码以及状态消息,其核心作用在于指示服务器对请求的处理结果状态码:由三位数字组成,用于表示响应的处理状态状态消息:与状态码对应的描述性短语
状态行响应头部包含了与服务器和响应相关的各类信息,例如服务器类型、响应日期、内容的类型等Server:用于表示服务器类型及其版本信息Date:指示响应生成的具体时间Content-Type:明确返回数据的类型及字符编码方式响应头部空行用于分隔响应头部和响应体。它是响应头部结束的标志,紧接在空行后面的部分是响应体(如果有)
空行响应体包含了服务器返回给客户端的实际数据,其数据格式可能为HTML、JSON、XML、图片等多种类型。在网络爬虫的作业流程中,响应体是爬虫抓取的核心数据部分。
响应体HTTP/1.1200OKServer:Apache/2.4.29(Unix)Date:Sat,01Jan202312:00:00GMTContent-Type:text/html;charset=utf-8完整的HTTP响应案例2.3.4HTTP/1.1200OKServer:Apache/2.4.29(Unix)Date:Sat,01Jan202312:00:00GMTContent-Type:text/html;charset=utf-8<!DOCTYPEhtml><html><head><title>ExamplePage</title></head><body><h1>Hello,World!</h1></body></html>在左侧案例中所包含的信息如下。(1)状态行:HTTP/1.1200OK,表示请求成功处理并返回相应内容。(2)响应头部:涵盖服务器信息、响应生成时间以及内容类型等关键信息。(3)响应体:服务器返回的HTML文档。HTTP状态码2.3.4200OK:请求成功,并返回相应的内容。201Created:请求成功,并创建了新的资源。204NoContent:请求成功,但没有返回任何内容。2xx成功301MovedPermanently:请求的资源已永久移动到新的URL。302Found/303SeeOther:请求的资源暂时移动到新的URL。304NotModified:客户端缓存的资源为最新版本,不需要重新传输。3xx重定向400BadRequest:请求无效或参数错误。401Unauthorized:需要身份验证才能访问资源。404NotFound:请求的资源不存在。4xx客户端错误500InternalServerError:服务器遇到了意外错误,无法完成请求。503ServiceUnavailable:服务器暂时无法处理请求,通常是因为过载或维护。5xx服务器错误Cookie简介Cookie是一种存储在用户计算机上的小型文本文件,它主要用于跟踪用户的会话信息、记录用户的偏好设置,以及实现其他与用户相关的功能。Cookie通常由服务器在HTTP响应的Set-Cookie头部中发送给浏览器,然后浏览器在后续的HTTP请求中通过Cookie头部将这些信息发送回服务器。Cookie的基本结构如下所示name=value:存储在Cookie中的数据,以键值对的形式表示。name是Cookie的名称,value是其对应的值。expires=date:Cookie的过期日期,超过这个日期后,浏览器将不再发送该Cookie。未指定expires时,Cookie的有效期通常为会话结束。path=path:指定Cookie有效的路径,只有当请求的路径匹配该值时,浏览器才会发送Cookie。domain=domain:指定Cookie有效的域名,只有当请求的域名匹配该值时,浏览器才会发送Cookie。secure:表示该Cookie只能通过HTTPS协议传输,确保数据安全性。2.3.5Set-Cookie:name=value;expires=date;path=path;domain=domain;secureCookie实例Cookie实例sessionId=abc123:这是一个名为sessionId的Cookie,值为abc123。expires:Cookie将在2024年6月9日过期,之后浏览器将不再发送此Cookie。path=/:Cookie在整个网站(所有路径)下均有效。domain=:此Cookie仅在域及其子域名下有效。secure:该Cookie只能通过HTTPS传输,增强了安全性。2.3.5Set-Cookie:sessionId=abc123;expires=Wed,09Jun202410:18:14GMT;path=/;domain=;secure注意Cookie是实现用户识别和会话管理的重要工具。理解其结构和机制,能够帮助开发者在Web开发和网络爬虫设计中合理使用Cookie。虽然Cookie在Web应用中非常有用,但滥用Cookie可能会引发用户隐私方面的担忧。尤其是在涉及跟踪用户行为或跨站点请求时,开发者需要谨慎。PATR04Google开发者工具Google开发者工具简述2.4DevToolsGoogle开发者工具(GoogleDeveloperTools),通常简称为DevTools,是由GoogleChrome浏览器提供的一组内置的开发者工具,用于在浏览器中进行调试、分析和优化网页。DevTools打开方式2.4123
3快捷键在Windows/Linux系统下,按F12键或Ctrl+Shift+I键。在Mac系统下,按Cmd+Option+I键。菜单单击Chrome浏览器右上角的菜单按钮(三个竖点),选择“更多工具”->“开发者工具”右键菜单在网页上右击,选择“检查”在GoogleChrome浏览器中可以通过多种方式打开DevToolsDevTools-元素面板2.4允许开发者查看和编辑网页的HTML和CSS。在爬虫开发中,使用该面板可以直观地看到网页的DOM树,了解网页中的数据结构,便于定位爬取目标。在面板中直接修改HTML和CSS,并立即看到效果变化。元素面板DevTools-控制台面板2.4控制台是调试JavaScript和查看日志信息的主要工具。在网络爬虫开发中,可以通过控制台直接执行JavaScript代码,或者通过输出日志检查动态加载的内容。直接在控制台中输入JavaScript代码,可以查看输出结果。当网页存在JavaScript错误时,控制台会输出详细的错误信息,帮助开发者定位问题。控制台面板DevTools-网络面板2.4网络面板显示网页加载时的所有网络请求,包括请求和响应的详细信息。在爬虫开发中,当网页使用Ajax动态加载数据时,网络面板可以帮助开发者查看数据是如何加载的,并抓取相关的API请求。在搜索标签页中,输入查询,然后按Enter键即可查看搜索结果,点击其中一个搜索结果,可以查看每个请求的详细信息,包括请求URL、请求方法(GET/POST等)、状态码以及响应数据,还可以看到各个资源的加载时间若要按请求类型过滤请求,可以在网络面板上依次点击All、Fetch/XHR、JS、CSS、Img、MediaFont、Doc、WS(WebSocket)、Wasm(WebAssembly)、Manifest或Other网络面板DevTools-源代码面板2.4源代码面板允许开发者调试JavaScript代码,支持设置断点和逐步执行代码在网络爬虫开发中,需要模拟用户行为时(如自动点击按钮或提交表单)。开发者可以查看并编辑网页的源文件,设置断点,逐行调试代码。源代码面板DevTools-性能面板2.4性能面板用于记录和分析网页的性能,展示页面加载时间、CPU使用率和内存占用情况在网络爬虫开发中,帮助分析页面加载的瓶颈,特别是在复杂的单页应用(SPA)中,页面内容可能在用户交互后才加载。性能面板DevTools-安全性面板2.4安全性面板展示网页的安全性信息,包括是否通过HTTPS连接、证书的有效性等在网络爬虫开发中,了解目标网页的安全性可以帮助避免潜在的问题,尤其是访问HTTPS站点时需要处理SSL证书等问题。安全性面板DevTools开发者工具功能总结2.4调试JavaScript逻辑使用源代码面板和控制台调试JavaScript,了解动态加载的内容以及与爬虫的交互逻辑检查存储数据通过应用面板查看Cookie、LocalStorage等,模拟用户登录或保持会话状态优化抓取效率利用性能面板和审计面板分析目标网页的性能,从而优化爬虫的抓取效率通过元素面板查看网页的DOM结构,定位需要爬取的数据分析网页结构利用网络面板查看网页的网络请求,了解数据的加载方式,便于模拟请求抓取数据调试网络请求PATR05综合案例-采集2024中国大学排名爬虫基本流程2.51通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应发起请求2如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML,JSON字符串,二进制数据(如图片视频)等类型获取响应内容3得到的内容如果是HTML,可以用正则表达式、网页解析库进行解析。如果是JSON,可以直接转为JSON对象解析,如果是二进制数据,可以做保存或者进一步的处理解析内容4保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定格式的文件保存数据2.5本案例旨在采集2024年中国大学排名数据,打开目标网站地址,需要采集的字段包括各大学的排名、校名、学科综合得分数据,相关信息展示如下图所示,要求采集涵盖所有“大学”类排名信息。数据采集需求采集思路分析2.5打开开发者工具,在“Elements”面板中可以看到大学信息在tr标签中,每个<td>标签则包含排名、大学名称、省份、综合得分等信息。2.5需要在Python的解释器中提前安装好requests和Beautifulsoup库,可以采用如下命令安装
数据采集代码实现pipinstallrequestsBeautifulsoup42.5运行采集大学排名信息的爬虫代码,在底部“Run”窗口中显示爬取结果
数据采集结果
本章小结本章系统讲解了网络爬虫的基础知识,围绕浏览器加载网页的过程、网页基础知识、HTTP协议以及Google开发者工具的使用展开,并通过实际案例展示了爬虫在数据采集中的应用。通过浏览器加载网页的过程,理解用户输入网址到页面内容展示的整个流程,包括DNS解析、TCP连接、HTTP请求与响应等关键步骤。这部分为后续理解爬虫如何获取网页数据奠定了基础。通过网页基础知识学习,了解HTML、CSS和JavaScript的基本构成及其在网页中的作用,帮助读者理解网页的结构,便于后续的网页解析与数据提取。通过分析HTTP基础知识,理解常见的HTTP请求方法(如GET和POST)、状态码以及请求头和响应头的作用。掌握爬虫与服务器交互时的基础知识,为后续的HTTP请求模拟提供了必要的理论支撑。通过Google开发者工具的使用介绍,掌握元素检查、网络请求查看、JavaScript调试等功能。通过这个工具,可以直观地分析网页结构、查看网络请求,进一步提高爬虫开发效率。通过综合案例——采集2024中国大学排名,展示了如何结合上述知识进行数据采集。案例中,详细演示了从获取网页源代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吉林省白城市政务服务中心(窗口人员)招聘考试参考题库及答案详解
- 2026年上饶市信州区政务服务中心(窗口人员)招聘考试模拟试题及答案详解
- 2026年自贡市大安区政务服务中心(窗口人员)招聘笔试模拟试题及答案详解
- 2026年潍坊市坊子区工会人员招聘考试参考试题及答案详解
- 2026年长沙市天心区政务服务中心(窗口人员)招聘考试备考试题及答案详解
- 2026年宁夏回族自治区石嘴山市工会人员招聘考试模拟试题及答案详解
- 2026年湖北省咸宁市政务服务中心(窗口人员)招聘考试备考试题及答案详解
- 2026年衢州市衢江区医疗系统事业编人员招聘笔试备考题库及答案详解
- 2026年吐鲁番市高昌区政务服务中心(窗口人员)招聘笔试参考题库及答案详解
- 2026年丽江地区古城区医疗系统事业编人员招聘笔试备考题库及答案详解
- 上海市《超低能耗建筑设计标准(公共建筑)》
- 卒中的中医课件
- 2019人教版高中数学A版 必修第2册《第十章 概率》大单元整体教学设计2020课标
- 最强-全国各地广播电台MMS地址
- 电力工程危险源辨识清单
- JJF(京) 68-2021 电能表现场校验标准装置校准规范
- 缠论-简单就是美
- QCT1177-2022汽车空调用冷凝器
- 初一数学上册有理数加减混合运算练习题及答案(共100题)
- 2024年浙江省眼镜验光员竞赛理论选拔考试题库(500题)
- 客舱服务(空中乘务专业)全套教学课件
评论
0/150
提交评论