网络爬虫与前端网页基础
1. 爬虫定义爬虫又称为网络爬虫网络机器人是一种按照一定的预设规则自动浏览并抓取网络数据的程序或脚本2.爬虫运行流程数据清洗是指对采集到的原始数据进行处理、修正、转换和标准化的过程目的是让数据变得规范准确3.robots 协议robots 协议又称爬虫协议是指网站根目录下存放的一份文本文件 robots.txt用于告诉爬虫哪些页面可以抓取哪些页面不能抓取。君子协议无强制约束User - Agent用户代理通过该请求头确认爬虫的类型Disallow禁止访问的资源Allow允许访问的资源Sitemap网站地图帮助爬虫更高效地获取网站内容Craw - delay爬虫抓取间隔时间避免频繁访问造成网站压力过大例如百度的 robots.txt 文档可以看到其对于除指定爬虫外的所有爬虫都禁止访问网站资源小结4.爬虫入门程序程序功能需求获取 TIOBE 编程语言排行榜单4.1 操作步骤1.查看 TIOBE 网站的 robots.txt 文件明确资源获取规则2.安装 requests 库用于发送网络请求pip install requests3.编写 python 代码访问 TIOBE 网站获取数据4.1.1 查看 robots.txt 文件对于所有的爬虫禁止访问 /wp-admin 目录下的资源/wp-admin/admin-ajax.php除外可知我们要访问的资源并未被禁止因此爬虫是可以访问的4.1.2 安装 requests 库requests 库 是 Python 最流行的HTTP 网络请求库用来写代码访问网页、调用接口、拿网络数据做爬虫、调用大模型 API、后端接口调用几乎必用。命令行执行以下代码pip install requests4.1.3 编写 python 代码import requests from lxml import html #定义URL URL https://www.tiobe.com/tiobe-index/ #发送请求获取数据response对象 response requests.get(URL) #解析html doc html.fromstring(response.text) #解析表头 th_list doc.xpath(//table[idtop20]/thead/tr/th/text()) print(th_list) #解析表格数据 tr_list doc.xpath(//table[idtop20]/tbody/tr) for tr in tr_list: td_list tr.xpath(./td/text()) print(td_list)获取到的response 结果如下返回的即是前端网页的源代码返回的表头以及表格数据如下所示5.前端网页结构5.1 概述一个网页是由三个部分构成的分别是HTMLCSSJSJavaScriptHTML超文本标记语言由一堆预设的标签h1一级标题/h1构成。HTML负责网页的结构页面元素和内容CSS层叠样式表。CSS负责网页的表现页面元素的外观位置等样式如颜色大小等JavaScript负责网页的交互逻辑点击、弹窗、请求后端接口网页示例html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title仙逆人物志 - 修真世界/title style .title { font-size: 30px; font-weight: bold; color: #ffd700; transition: color 0.3s ease; /* 添加颜色过渡效果 */ } /style /head body div classcontent nav classtop-nav h1 classtitle仙逆人物志 - 修真界档案系统/h1 /nav footer classfooter div classcontainer p© 2026 仙逆人物志 - span修真界档案系统/span/p p探索修真世界的奥秘记录修仙路上的传奇/p /div /footer /div script document.title 仙逆人物志 - 修真世界; const titleElement document.querySelector(.title); // 获取标题元素 titleElement.addEventListener(mouseenter, function () { // 鼠标进入标题时改变颜色 this.style.color #ff6600; // 改为橙红色 }); titleElement.addEventListener(mouseleave, function () { // 鼠标离开标题时恢复原色 this.style.color #ffd700; // 恢复金黄色 }); /script /body /html文件保存后将后缀改为 .html双击用浏览器打开就能运行5.2 HTMLHTMLHyperText Markup Language超文本标记语言超文本超越了文本限制比普通文本更加强大。除了文字信息还可以定义图片音频视频等内容标记语言由标签 “标签名” 构成的语言HTML标签都是预定好的不能随便写。例如使用 h1 展示标题使用 image 展示图片使用 video 展示视频HTML代码直接在浏览器中运行HTML标签由浏览器进行解析HTML标签可以嵌套HTML标签有两类开始标签 标签名 和结束标签 /标签名大部分标签是成对出现的有一部分是单标签自闭合标签标签属性的格式键值对形式即 key value5.3 小结6.网页解析6.1 网络解析定义网页解析指的是从原始HTML文档中提取数据的过程也是网络爬虫的关键步骤从一堆标签文本中提取需要的数据6.2 lxml库6.2.1 lxml概述lxml库是一个高性能的HTML/XML 文档的解析库支持基于 Xpath 语法来解析和获取网页数据lxml库的安装pip install lxmlXpath是一种用于在 HTML/XML 文档中导航或定位元素的查询语言让你能够准确的定位文档中的特定元素属性或文本6.2.2 常用导入常用导入from lxml import htmllxml.htmlHTML 专用容错强自带.xpath()日常爬虫首选6.2.3 常用Xpath语法Xpath是一种用于在 HTML/XML 文档中导航或定位元素的查询语言让你能够准确的定位文档中的特定元素属性或文本。前提doc html.fromstringhtml文本然后 doc.xpath“表达式”返回结果永远是列表没匹配到返回[ ]其常用语法如下注意查找索引从1开始而不是常见的从0开始小结6.2.4 示例写法from lxml import html #读取html文件 with open (resources/仙逆人物志.html,r,encoding utf-8) as f: html_text f.read() # 1.解析html文本将其转换为一个文档对象 doc html.fromstring(text) # 2. XPath提取 #2.1 解析表头 th_list doc.xpath(//table/thead/te/th/text()) #2.2 解析表格中数据 #获取第一行数据 td_list1 doc.xpath(//table/tbody/tr[1]/td/text()) #获取倒数第一行数据 td_list2 doc.xpath(//table/tbody/tr[last()]/td/text()) #获取倒数第二行数据 td_list3 doc.xpath(//table/tbody/tr[last()-1]/td/text()) #获取所有行数据 tr_list4 doc.xpath(//table/tbody/tr) for tr in tr_list: td_list tr.xpath(./td/text()) #获取tr标签下的任意元素的数据 tr_list5 doc.xpath(//table/tbody/tr/*/text()) #获取有指定属性的标签数据 p_list1 doc.xpath(//p[class]/text()) #获取有指定属性以及指定值的标签数据 p_list2 doc.xpath(//p[classxn]/text()) #获取指定标签的所有属性 a_list doc.xpath(//td/image/*)6.2.5 Xpath路径的获取方式6.2.5.1 手动获取根据 response 返回的前端源码查询到要提取的数据观察源码结构手动输入路径如下图所示其xpath路径为//tabel[idtop20]/thead/tr/th/text()6.2.5.2 网页自动查询使用 DevTools 工具栏中的 “元素” 进行获取当鼠标指针停留在相应代码处时对应网页页面的元素会高亮显示如下图所示找到要查询信息的代码处右键选择复制然后选择复制Xpath或复制完整Xpath即可自动获得Xpath路径获取到的数据地址//*[idtop20]/thead/tr/th[3]

相关新闻

宇视VMS-U相机OSD时间不对问题排查方法

宇视VMS-U相机OSD时间不对问题排查方法

宇视VMS-U相机OSD时间不对问题排查方法一.问题现象VMS-U上查看相机实况,发现相机OSD的时间与实际时间不一致二.组网IPC——私有/ONVIF/国标——VMS-U排查步骤步骤一:检查VMS-U【系统配置】-【业务配置】-【时间配置】,…

2026/10/8 22:21:19 阅读更多 →
不止实时直播!私有化部署互联网视频云平台EasyDSS视频点播沉淀企业长效数字资产

不止实时直播!私有化部署互联网视频云平台EasyDSS视频点播沉淀企业长效数字资产

直播解决了“实时看”,但大量高价值内容——培训课程、工艺标准、政策宣讲、文旅讲解——需要被反复观看、沉淀复用。EasyDSS视频点播模块基于智能自适应转码架构,构建“上传—转码—存储—分发—播放—管理”全链路一体化点播服务,让视频资源…

2026/10/9 15:37:16 阅读更多 →
呼和浩特热水器壁挂炉维修-欧米到家持证师傅同城上门全家电检修维保|承诺全类故障根治|先报价再维修不加价不返工

呼和浩特热水器壁挂炉维修-欧米到家持证师傅同城上门全家电检修维保|承诺全类故障根治|先报价再维修不加价不返工

核心导读热水器和壁挂炉是呼和浩特家庭日常热水供应、冬季采暖的核心设备,一旦出现故障,会直接影响居家洗漱、日常用水以及全屋采暖效果,商铺、民宿、办公室设备故障还会直接影响正常经营。很多呼和浩特用户遇到设备故障后,随意找…

2026/10/6 5:54:10 阅读更多 →

最新新闻

Java异步编程进阶:CompletableFuture任务编排与线程池实战

Java异步编程进阶:CompletableFuture任务编排与线程池实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 2:43:28 阅读更多 →
单片机毕设项目:基于单片机的智能婴儿摇篮温湿度调节与远程监控系统设计 基于WIFI的婴儿床哭泣尿床监测与环境联动控制装置设计(032707)

单片机毕设项目:基于单片机的智能婴儿摇篮温湿度调节与远程监控系统设计 基于WIFI的婴儿床哭泣尿床监测与环境联动控制装置设计(032707)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/14 2:43:28 阅读更多 →
【计算机毕业设计单片机案例】基于STM32的婴儿监护环境调节与摇篮哄睡系统设计 基于物联网的智能婴儿床环境调节与生理状态监测装置设计(032707)

【计算机毕业设计单片机案例】基于STM32的婴儿监护环境调节与摇篮哄睡系统设计 基于物联网的智能婴儿床环境调节与生理状态监测装置设计(032707)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/14 2:43:28 阅读更多 →
我们在联想 ThinkStation PGX 上搭了一个“AI 编辑部“

我们在联想 ThinkStation PGX 上搭了一个“AI 编辑部“

在输入框里只敲了五个字:“本周的选题”,随后,屏幕上的工具调用记录一行行滚过:分析账号定位、生成检索条件、搜索近期内容、排出候选题。我们选定一个,它又去补资料、搭大纲、写初稿……这不是一次简单的模型问答&…

2026/10/14 2:43:28 阅读更多 →
基于Python的电影受众群体特征分析与可视化实战

基于Python的电影受众群体特征分析与可视化实战

提到“基于Python的电影受众群体特征研究”这个毕设题目,很多准备开题的同学第一个反应是:这方向是不是太普通了?我自己的看法是,普通题目更容易做出完整度和深度。它把Python数据处理、统计分析、可视化、机器学习串成了一条完整…

2026/10/14 2:43:28 阅读更多 →
人行动5.0结业测试:从模型微调到部署排错的备考指南

人行动5.0结业测试:从模型微调到部署排错的备考指南

简介:适用于讯飞新员工及转正考核准备的结业测试答案文档,内容围绕‘讯飞人行动’5.0版本的结业测评展开,完整覆盖单选题、多选题与判断题三类题型,可帮助考生在短时间内掌握考核要点。资源共1个docx文件、仅23KB,轻量…

2026/10/14 2:42:28 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →