前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >爬虫系列-网页是怎样构成的

爬虫系列-网页是怎样构成的

作者头像
用户10002156
发布于 2023-08-07 03:11:29
发布于 2023-08-07 03:11:29
26400
代码可运行
举报
文章被收录于专栏:生活处处有BUG生活处处有BUG
运行总次数:0
代码可运行

背景

最近在学爬虫技术,顺便记录一下学习的过程,供各位小伙伴参考。

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。

网页是怎样构成的

爬虫程序之所以可以抓取数据,是因为爬虫能够对网页进行分析,并在网页中提取出想要的数据。在学习 Python 爬虫模块前,我们有必要先熟悉网页的基本结构,这是编写爬虫程序的必备知识。

如果您熟悉前端语言,那么您可以轻松地掌握本节知识。

网页一般由三部分组成,分别是 HTML(超文本标记语言)、CSS(层叠样式表)和 JavaScript(简称“JS”动态脚本语言),它们三者在网页中分别承担着不同的任务。

  • • HTML 负责定义网页的内容
  • • CSS 负责描述网页的布局
  • • JavaScript 负责网页的行为

HTML

HTML 是网页的基本结构,它相当于人体的骨骼结构。网页中同时带有“<”、“>”符号的都属于 HTML 标签。常见的 HTML 标签如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html> 声明为 HTML5 文档
<html>..</html> 是网页的根元素
<head>..</head> 元素包含了文档的元(meta)数据,如 <meta charset="utf-8"> 定义网页编码格式为 utf-8<title>..<title> 元素描述了文档的标题
<body>..</body> 表示用户可见的内容
<div>..</div> 表示框架
<p>..</p> 表示段落
<ul>..</ul> 定义无序列表
<ol>..</ol>定义有序列表
<li>..</li>表示列表项
<img src="" alt="">表示图片
<h1>..</h1>表示标题
<a href="">..</a>表示超链接

编写如下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>编程帮</title>
</head>
<body>
<a href="www.biancheng.net">点击访问</a>
<h1>编程帮www.biancheng.net</h1>
<h2>Python爬虫</h2>
<div>
<p>认识网页结构</p>
<ul>
<li>HTML</li>
<li>CSS</li>
</ul>
</div>
</body>
</html>

运行结果如下图所示:

python爬虫网页结构

图1:HTML网页结构

CSS

CSS 表示层叠样式表,其编写方法有三种,分别是行内样式、内嵌样式和外联样式。CSS 代码演示如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
<head>
   <!-- 内嵌样式 -->
    <style type="text/css">
    
    body{
        background-color:yellow;
    }
    p{
        font-size: 30px;
        color: springgreen;
    }
    </style>
<meta charset="utf-8">
<title>编程帮</title>
</head>
<body>
<!-- h1标签使用了行内样式 -->
<h1 style="color: blue;">编程帮www.biancheng.net</h1>
<a href="www.biancheng.net">点击访问</a>
<h2>Python爬虫</h2>
<div>
<p>认识网页结构</p>
<ul>
<li>HTML</li>
<li>CSS</li>
</ul>
</div>
</body>
</html>

运行结果如下图所示:

python爬虫网页结构

图2:CSS样式表演示

如图 2 所示内嵌样式通过 style 标签书写样式表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style type="text/css"</style>

而行内样式则通过 HTML 元素的 style 属性来书写 CSS 代码。注意,每一个 HTML 元素,都有 style,class,id,name,title 属性。

外联样式表指的是将 CSS 代码单独保存为以 .css 结尾的文件,并使用 引入到所需页面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>

当样式需要被应用到多个页面的时候,使用外联样式表是最佳的选择。

JavaScript

JavaScript 负责描述网页的行为,比如,交互的内容和各种特效都可以使用 JavaScript 来实现。当然可以通过其他方式实现,比如 jQuery、还有一些前端框架( vue、React 等),不过它们都是在“JS”的基础上实现的。

简单示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
<head>
    <style type="text/css">
        body{
            background-color: rgb(220, 226, 226);
        }
    </style>
<meta charset="utf-8">
<title>编程帮</title>
</head>
<body>
<h1 style="color: blue;">编程帮www.biancheng.net</h1>
<h2>Python爬虫</h2>
<p>点击下方按钮获取当前时间</p>
<button onclick="DisplayDate()">点击这里</button>
<p id="time" style="color: red;"></p>
<!-- script标签内部编写js代码 -->
<script>
    function DisplayDate(){
        document.getElementById("time").innerHTML=Date()
    }
</script>
</div>
</body>
</html>

运行结果如下:

python爬虫网页结构

图3:JS获取当前时间

参考文章:http://c.biancheng.net/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生活处处有BUG 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TRTC Electron SDK: Mac 下构建双架构包
TRTC Electron SDK 从 10.6.403 版本开始,支持构建 X64 和 ARM64 双架构包
笑若海
2022/09/14
4.5K0
Electron 常见问题收录II
进入到工程目录下的trtc-electron-sdk库目录下(xxx/node_modules/trtc-electron-sdk)。
用户5840286
2020/09/09
3K1
Electron 常见问题收录II
Electron9.x +vue+ffi-napi 调用Dll动态链接库
本文主要介绍在 Electron9.x 中,使用ffi-napi,ref-array-napi,ref-napi 加载 Windows 动态链接库,并在Vue 渲染进程中使用。使用过程中会遇到一系列的坑,本文将会一一解决,并解释原因。如有同行兄弟遇到此问题可以借鉴。
治电小白菜
2022/09/08
5.1K0
Electron集成Vue Cli3创建项目
插件官网地址: https://nklayman.github.io/vue-cli-plugin-electron-builder/
码客说
2020/05/09
2.6K0
你不知道的 Electron (二):了解 Electron 打包
我们知道 Electron 提供了一个类似浏览器,但有更多权限的环境来运行我们的网页,那么 Electron 是怎么做到将我们的网页代码打包成一个可执行程序的呢?
IMWeb前端团队
2019/12/03
3.7K0
Electron创建项目的两种方式
方式1适合单窗口的项目,注意一定不要创建多个窗口加载不同的路由,这样会特别的占用内存。
码客说
2022/03/01
5570
Electron安装过程深入解析(读完此文解决Electron安装失败导致的无法启动,无法打包的问题)
开发者往往通过npm install(或 yarn add)指令完成为Node.js工程安装依赖包的工作,
liulun
2020/10/10
10.8K0
Electron安装过程深入解析(读完此文解决Electron安装失败导致的无法启动,无法打包的问题)
Electron+Vue3.2+TypeScript+Vite开发桌面端
Electron可以让程序员重用Web的代码,使用HTML、CSS、JavaScript来构建桌面应用,并在不同平台上使用。
星星在线
2022/08/31
2.6K0
程序员就得会偷懒,重写了一个electron小工具,解放美女运营!
文章地址:https://cloud.tencent.com/developer/article/2474320
一起重学前端
2024/12/06
1640
electron打包爬坑—出坑
昨天一番解了很久想解这个electron打包python可执行文件为一体的方法,因为要发布我们的小工具,必须要打包为一个安装包啊,不然对于计算机小白来讲太不友好了。今天一番发挥极客精神,必须要将这个问题解决啊,至少。。。。暂时在某种程度上解决这个问题吧。
efonfighting
2019/10/29
3.1K1
electron打包爬坑—出坑
我的第一个Electron应用
hello,好久不见,最近笔者花了几天时间入门Electron,然后做了一个非常简单的应用,本文就来给各位分享一下过程,Electron大佬请随意~
街角小林
2023/05/31
1.5K0
我的第一个Electron应用
electron 应用开发优秀实践
在团队中,我们因业务发展,需要用到桌面端技术,如离线可用、调用桌面系统能力。什么是桌面端开发?一句话概括就是:以 Windows 、macOS 和 Linux 为操作系统的软件开发。对此我们做了详细的技术调研,桌面端的开发方式主要有 Native 、 QT 、 Flutter 、 NW 、 Electron 、 Tarui 。其各自优劣势如下表格所示:
2020labs小助手
2022/08/09
2.8K0
不联网的情况下,使用 electron-builder 快速打包全平台应用
Electron 之所以能够日益风靡,是因为其简单易用且对各个操作平台具有良好的支持。
编程三昧
2022/03/03
3.8K0
不联网的情况下,使用 electron-builder 快速打包全平台应用
electron-vue打包不同平台的安装包
electron-vue的打包 1.package.json加入以下代码 "scripts": { "build": "node .electron-vue/build.js && electron-builder", "build:dir": "node .electron-vue/build.js && electron-builder --dir", "build:clean": "cross-env BUILD_TARGET=clean node .electron-vue
薛定喵君
2019/11/06
1.7K0
mac升级ventura系统之后electron项目打包报错问题
mac 升级了系统之后,之前的 electron 项目打包出现了异常,无法生成安装包:
薛定喵君
2022/11/18
2.2K0
Electron 打包优化 - 从 393MB 到 161MB
在 上一篇(你不知道的 Electron (二):了解 Electron 打包) 中对 Electron 应用是如何被打包成可执行文件进行了简单的介绍,并且谈到了默认情况下打包存在的问题。
IMWeb前端团队
2019/12/03
16K0
使用 electron-builder 打包 Electron 程序
在将 Electron 代码开发完成后,如果想要投入生产环境,那就必须经过很关键的一步——打包。
编程三昧
2022/01/20
2.6K0
使用 electron-builder 打包 Electron 程序
Electron 在 Taro IDE 的开发实践
Taro IDE 是一款我们正在精心打造的一站式移动端研发工作台。除了需要实现 Taro 从创建项目到预览、编译的全部能力,还需要打通用户测试、调试、监控等一系列流程。为了提升开发体验,仅仅一个命令行工具是远远不够的,我们需要开发一款桌面客户端,并同时提供 Windows、MacOS 等不同系统的版本。
WecTeam
2020/04/09
2.5K0
Electron 在 Taro IDE 的开发实践
用 Electron 将 UniApp 封装为 EXE 指南
最近想要制作一个 Windows 工具箱,所以需要多集合一些功能。之前用 uniapp 制作了一些功能,为了省事,所以想要把部分 uniapp 封装成 exe 来丰富功能。
繁依Fanyi
2025/02/22
3820
用 Electron 将 UniApp 封装为 EXE 指南
AntDesignPro使用electron构建桌面应用
当项目打包成应用后使用的是 file:协议 ant pro 的请求无法发出 需要使用完整的请求地址 目前方法为配置前缀
憧憬博客
2020/08/12
2.4K0
相关推荐
TRTC Electron SDK: Mac 下构建双架构包
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验