Python爬虫笔记 | HTML基础

什么是网络爬虫 又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫可以根据指定的规则,从互联网上下载网页、图片、视频等内容,并抽取其中的有用信息进行处理。网络爬虫的工作流程包括获取网页源代码、解析网页内容、存储数据等步骤。根据其目的和工作方式的不同,网络爬虫可以分为多种类型。常见的网络爬虫包括通用爬虫、聚焦爬虫、增量式爬虫等。 阅读详情

使用python版本:3.7.0 64-bit

如果把HTML的学习依序分为三个层次的话,应该是读懂、修改、编写。

读懂: 只有读懂了HTML,我们才能看得懂网页结构,才有可能运用Python的其他模块去解析数据和提取数据。所以想写爬虫程序的话,一定要先学好HTML基础。
修改: 在读懂HTML文档的基础上,学会修改HTML代码,是可以做些有趣的事情的。
编写: 如果达到了这个水平,那就可以去应聘前端工程师了,这是专业的程序员水平了。

HTML 基础

HTML称为超文本标记语言,是一种用来描述网页信息的标识性语言。

查看网页的HTML代码

用谷歌浏览器(Chrome)进行演示。

在网页任意地方点击鼠标右键,然后点击“显示网页源代码”。(Windows系统的电脑还可以使用快捷键ctrl+u来查看网页源代码),你会看到,浏览器弹出了一个新的标签页:
在这里插入图片描述
如图显示的就是HTML源代码。

这样查看的好处是,整个网页的源代码都完整地呈现在你面前。坏处是,在大部分情况下,它都会经过压缩,导致结构不够清晰,你不太容易懂每行代码的含义。而且,源代码和网页分开在两个页面展示。

所以更多时候,我们会用这样一种方法:
在网页的空白处点击右键,然后选择“检查”(快捷方式是ctrl+shift+i)。

这个即是 开发者工具栏:
在这里插入图片描述
上图中标亮的部分就是网页的HTML代码。

将鼠标放在HTML源代码上,你会发现,左边网页上有一些内容会被标亮。这其实就是这行代码所描述的网页内容,它们一左一右,相互对应。

HTML的层级

通过开发者工具栏,可以看出HTML会有鲜明的层级结构,以及互相对应的关系。


HTML的组成

标签和元素

最简单的HTML文档:

<html>
	<head>
		<meta charset="utf-8"> 
	</head>
    <body>
        <h1>我是一级标题</h1>
        <h2>我是二级标题</h2>
        <h3>我是三级标题</h3>
        <p>我是一个段落啦。一级标题、二级标题和我,我们三个一起组成了body。
         </p>
    </body>
</html>

标签: 夹在尖括号<> 中间的字母。

标签通常是成对出现的:前面的是 开始标签,比如< body >;后面的是结束标签,如 < /body >。

元素: 开始标签+结束标签+中间的所有内容。如下:

<html>
	<body>
        <h1>我是一级标题</h1>
    </body>
</html>

常见的HTML元素:

开始标签元素内容结束标签用法
< h1 >一级标题< /h1 >一级标题
< h2 >二级标题< /h2 >二级标题
< p >段落文本< /p >段落
< a >描述链接的文本< /a >超链接
< div >其它元素或文本< /div >块

HTML标签是可以嵌套标签的,而且可以多层嵌套。

网页头和网页体

HTML文档的基本是由 网页头 和 网页体 组成的:

<html>
	<head>
		网页头的具体内容
	</head>
    <body>
        网页体的具体内容
    </body>
</html>

HTML文档的最外层标签一定是< html >,里面嵌套着< head >元素与< body >元素。< head >元素代表了网页头,< body >元素代表了 网页体 ,这是最基本的网页结构。

HTML文档和网页的内容一定是一一对应的。只是网页头的内容不会被直接呈现在浏览器里的网页正文中,而网页体的内容是会直接显示在网页正文中的。

网页头:< head >元素
<head>
    <meta charset="utf-8">     # 定义了HTML文档的字符编码
    <title>我是网页的名字</title> # 定义网页的标题,这个标题就是显示在浏览器的标签页中的内容
</head>
网页体: < body >元素
<html>
  <head>
      <meta charset="utf-8"> 
      <title>我要学python</title>
  </head>
  <body>
      <h1>我要学python</h1>
      <h3>百度百科解释</h3>
      <h2>python是什么:</h2>
      <p>Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
      </p>
  </body>
</html>

HTML文档是由网页头和网页体组成的,网页头不显示在网页中。

而网页体中依次有四个内容:
< h1 >元素 代表一级标题,对应网页中的“我要学python”;
< h3 >元素 代表三级标题,对应网页中的“百度百科解释”;
< h2 >元素 代表二级标题,对应网页中的“python是什么:”;
< p >元素 对应网页中“Python是一种跨平台…的开发。”这一整段文本。

属性

HTML标签可以通过设置 属性 来为HTML元素描述更多的信息。如:文字颜色等。

style属性:规定元素的内行样式(inline style)
<h1 style="color:#20b2aa;">我要学python</h1>

属性通常都是在HTML元素的 开始标签 中设置的。

给< h1 >元素添加了一个style属性,属性中的内容规定了这行文字的颜色。

style属性 可以用来定义网页文本的样式,比如字体大小、颜色、间距、对齐方式等。

href属性:用来定义链接
<a href="https://blog.youkuaiyun.com/Microgoblins">我是一个链接,点我试试</a>

href属性用来在网页中 添加链接。

在HTML中,链接一般都由< a >标签定义,href属性用于规定指向页面的URL。

class属性:为html元素定义一个或多个类名(classname)
<html>
  <head>
      <meta charset="utf-8"> 
      <title>我要学python</title>
      <style>
      .book {
      float: left;
      margin: 5px;
      padding: 15px;
      width: 350px;
      height: 240px;
      border: 3px solid #20b2aa;
      } 
      </style>
  </head>
  
  <body>
      <h1 style="color:#20b2aa;">我要学python</h1>
      <h3>百度百科解释</h3>
      <a href="https://blog.youkuaiyun.com/Microgoblins">点这里看看</a>
      <div class="book">
          <h2>python是什么:</h2>
          <p>Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
          </p>
      </div>
  </body>
</html>

网页头中多了一个很长的

<style> 
.book {
/*以下是.book的具体样式规定*/
float: left; /*控制元素浮动*/
margin: 5px; /*外边距为5像素*/
padding: 15px; /*内边距为15像素*/
width: 350px; /*宽度为350像素*/
height: 240px; /*高度为240像素*/
border: 3px solid #20b2aa; /*边框为3像素*/
} 
</style>

< style >元素的内容,是对.book的具体描述,比如float: left;,而/* 控制元素浮动 */ 是对代码的注释。

其实这是一段对网页布局的描述。

在大括号内部写的就是一条条的样式规定。代码的注释中有每个具体样式的意思,如下图:在这里插入图片描述
一个是网页头里的.book;一个是网页体里的< div class=“book”>。

其实 . 对应class,所以.book代表class book。因此,网页头中的 .book 和网页体中的class="book"是有联系的。

在网页头里面,定义了class属性,属性值为"book",然后下面一长串代码是对这个class属性的描述;接着再在网页体中调用,所以看到了< div class=“book”>。

id属性:定义元素的唯一id

id属性 和 class属性 的用法类似,给元素定义id和class的目的都是为了查找、定位元素,或者为元素设置样式。

但 id属性用于标识唯一的元素,而class用于标识一系列的元素。
id就像是学生的学生证号码,每个人都是唯一的;而学生们可以属于同一个班级,班级就像class。


HTML的组成: 标签、元素、结构(网页头和网页体)、属性。

掌握这些知识后,可以通过阅读HTML文档,来对照理解网页。

熟能生巧,百战成神。

Python 网络爬虫入门与实战 网络爬虫(Web Crawler)是自动访问网络并提取信息的程序。它可以模拟人类用户在浏览器中的行为,访问网页、抓取数据并存储到本地或数据库中。网络爬虫在信息检索、数据挖掘、搜索引擎等领域有广泛应用。Scrapy 是一个强大的爬虫框架,支持异步处理和数据存储。它适合大型爬虫项目,可以高效抓取和解析数据。yield item通过本文的学习,您应该对 Python 网络爬虫有了全面的了解。从基础的 Requests 库到高级的 Scrapy 框架,再到实战案例,涵盖了网络爬虫的方方面面。 阅读详情

相关推荐

网络爬虫之必备知识

摘要:本文主要理清网络爬虫的概念,简要讲解爬虫的必备知识,分为python基础、字符编码、http头信息、http状态码、html基础、爬虫职业道德。内容浅显,主要理一理相关知识。一、网络爬虫的概念   网络爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 通俗的说,我们写爬虫的目的就是自动从不同的网页上提取海量的数据。以下是我之前爬取的部分数据

CaiNiaoWuZui的专栏 5858

Python笔记九:网络爬虫及requests库、beautifulsoup4库解析和处理HTML

Python笔记九:网络爬虫及requests库、beautifulsoup4库解析和处理HTML

m0_61598337的博客 1143

五分钟学会Python网络爬虫

但不管怎样,爬虫技术是无罪的,还是值得我们开发人员去学习了解一下的。在学习之前,我们还是要先了解一下相关概念。 什么是爬虫 网络爬虫:又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。 大数据时代,要进行数据分析,首先要有数据源,可数据源从哪里来,花钱买,没预算,只能从其它网站就行抓取。 细分下来,业内分为两类:爬虫和反爬虫。 反爬虫:顾名思义,就是防止你来我网站或APP上做爬虫的。 爬虫工程师和反爬虫工程师是一对相爱相杀的小伙伴,经常因为对方要加班写代码,

python588的博客 2352

Python爬虫:从后端分析为什么你爬虫爬取不到数据

仅仅是小编总结的三点而已,可能不是很全面,如果之后小编了解到新的知识点,可能还会增加的哈!

坚持不懈的大白的博客 6647

爬虫基础(1)什么是网络爬虫

文章目录一. 认识网络爬虫二. 网络爬虫的组成三. 网络爬虫的类型1. 通用网络爬虫2. 聚焦网络爬虫3. 增量式网络爬虫4. 深层网络爬虫(1)静态网页(2)深层页面和表层页面(3)网络爬虫表单填写四. 网络爬虫的用途 一. 认识网络爬虫 说起网络爬虫,人们常常会用这样一个比喻:如果把互联网比喻成一张网,那么网络爬虫就可以认为是一个在网上爬来爬去的小虫子,它通过网页的链接地址来寻找网页,通过特定的搜索算法来确定路线,通常从网站的某一个页面开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地

Python达人 2840

Python爬虫入门与实战技巧笔记

htmltable {th, td {th {pre {简介:本教程笔记为初学者提供Python爬虫技术的入门指南,涵盖了请求响应、HTML解析、正则表达式、动态加载处理、数据存储、防爬机制绕过以及错误处理等基础和进阶知识。还包括Scrapy框架使用、多线程/异步IO技术以及网络爬虫的法律与道德规范。课程注重实战技巧,帮助学习者快速成长为爬虫开发者。

weixin_30218749的博客 1099

【千字总结】爬虫学习指南-2024最新版

如何自学爬虫?今天有一个兄弟这样问我,可以看到打了很多字,诚意肯定是很足的,也是对我的内容给予了肯定,让我非常的开心。既然难得有人问我,那我一定要好好做一个回答。我下面将要说的内容没有任何话是从网上复制粘贴的,全都是个人见解,所以也意味着可能有的小伙伴不赞同,没关系,我们可以在评论区交流一下。下面我会从下面四个方面介绍爬虫,涉及到的学科,如何学编程,网上自学优缺点,我的学习方法和建议。首先是学习最主要的就是积累。日复一日,对于我来说就是关注很多B站python相关的up主,公众号,抖音也关注了很多。

weixin_62650212的博客 1608

爬虫百战成神刷题网站.zip

爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

网页head内的数据移到body内,BOM问题和WordPress网页上部24px空白问题的解决

这几天发现网站上部总是多出一个24px的空白栏,找来找去找不出原因。开始想可能是css的问题,后来干脆把body的背景色设置成了黑色,这样和黑色顶栏融为一体,看着没这么扎眼。昨天用百度的网站速度检测,提示css没放在head段内,跑到了body段内。引起浏览器二次渲染,影响加载速度。看看源码都正常,但用浏览器按F12键看,确实有一个空白的&lt;head&gt;&lt;/head&gt;段,css...

ufo2006的专栏 610

Unity中Newtonsoft.Json的使用(一)

在Unity中下载Newtonsoft.Json,并进行序列化和反序列化

洛苍离的博客 1万+

从5V降到3.3V,你的LDO到底有多烫?手把手算功耗、选散热,避开这些坑

本文详细解析了LDO在5V转3.3V电路中的发热问题,提供了精确的功耗计算公式和散热设计方法。通过对比不同封装的热阻参数和优化PCB布局,帮助工程师有效降低LDO温度,避免热保护触发。文章还探讨了替代方案的技术拐点,为电源系统优化设计提供实用指导。

weixin_30304375的博客 433

python爬取重名div_第6天 | 10天搞定Python网络爬虫,爬盗墓笔记,牛

前几天,有老铁留言说能不能VIP小说?-我回复说他是"坏人",因为我觉得他不尊重别人的劳动成果,如果是免费的,我倒可以考虑。于是,我上网找呀找,搜呀搜,看有没有免费版,而且是大家都喜欢看的免费小说,爬下来,放在手机上看。经过终于让我找到了近几年特别火的、免费版的《盗墓笔记》。6.1 爬取目标用Chrome浏览器,打开http://seputu.com网址的那一刻,小伙伴们都惊呆了,第1部到第8部都...

weixin_39826342的博客 425

【Dify精讲】第2章:后端服务架构深度剖析

Dify后端采用Flask应用工厂模式实现模块化开发,通过蓝图架构将API分为控制台、Web应用和服务接口三大模块。其设计亮点包括:1) 应用工厂模式支持多环境配置和独立测试;2) 蓝图分层管理实现API模块化,各模块职责清晰;3) 严格遵循RESTful原则设计API接口;4) 使用Flask-RESTful扩展简化API开发。这种架构既保持了Flask的灵活性,又实现了企业级应用的可维护性,是Flask项目架构的优秀实践案例。

wiyi9891的专栏 2126

python网络爬虫指南一:网页基础(html/css/JavaScript)、网络请求(urllib/requests)、数据解析(XPath/BeautifulSoup)

HTML,全称为“超文本标记语言”(HyperText Markup Language),是一种用于创建网页内容的标记语言,它使用各种标签和元素来描述网页的结构和显示方式。HTML标记通常以尖括号包围,如。HTML可以理解为网页的“骨架”。它为浏览器提供了关于网页内容如何排列、呈现和交互的信息。通过在HTML文档中插入不同类型的标记,我们可以创建文本、图像、链接、表格和其他元素。JavaScript简称JS,是一种由客户端浏览器运行的动态脚本语言,旨在为网页添加交互性和动态性。

qq_56591814的博客 9451

告别混乱!在Unity中为Best MQTT v3设计清晰的服务层:配置、连接、订阅发布模块拆分指南

本文详细介绍了如何在Unity中使用Best MQTT v3插件构建清晰的服务层架构,包括配置管理、连接服务、订阅管理和发布服务的模块化拆分。通过解耦设计、事件驱动和接口抽象,提升代码可维护性和可测试性,适用于物联网和实时通信开发场景。

weixin_30576827的博客 357

sas协议(SAS PL-3)之Zoning功能

1 Zoning overview SAS zoning is implemented by a set of zoning expander devices with zoning enabled that define a zoned portion of a service delivery subsystem (ZPSDS)服务子系统. The zoning expander devices control whether a phy is permitted to participate in

sinat_37817094的博客 1530

python3网络爬虫笔记-爬虫基础原理

本笔记是学习崔庆才老师的网络爬虫课程的总结笔记。

Vriesianman的博客 1009

《MPDIoU:边界框回归的高效革新与YOLOv8集成实战指南》

摘要: MPDIoU(多优先级距离IoU)通过引入中心距离、形状差异和尺度变化的三步优化策略,解决了传统IoU在目标检测中的尺度敏感、收敛低效和场景局限问题。相较于GIoU、DIoU等主流方法,MPDIoU在精度、速度和鲁棒性上实现全面提升,尤其在复杂场景和小目标检测中表现突出。通过代码集成和训练优化,MPDIoU在YOLOv8中显著提升COCO数据集AP指标,并在智能安防(密集行人检测)和工业质检(微小缺陷定位)等垂直领域验证了其应用价值。未来研究方向包括动态权重调整和多模态融合,进一步拓展边界框回归的精

m0_64661770的博客 158

Python 网络爬虫教程

网络爬虫是一种自动化程序,它模拟人类用户访问网页,自动获取网页上的内容。这些数据可以是文本、图片、视频等。爬虫的核心任务是发送 HTTP 请求,获取网页响应并解析内容。

JH_joker的博客 2361

Python计算时间差的方法

使用datetime模块是Python内置的方法,使用timedelta对象可以更精确地计算时间差,而使用dateutil库则提供了更为灵活和方便的操作方式。我们可以使用datetime模块中的datetime类来表示一个具体的日期和时间,并进行相应的运算。在Python中,我们经常需要计算日期和时间之间的差异,例如计算两个日期之间的天数、小时数、分钟数等。Python提供了多种方法来计算时间差,下面我们将介绍其中的几种常用方法,并附上相应的源代码。在上面的代码中,我们使用了dateutil库中的。

学习使你进步。 2083

Python爬虫实战:利用Playwright和反反爬技术高效抓取Bloomberg金融数据

用户行为分析(鼠标移动、点击模式)请求头检测IP频率限制WebSocket通信验证Canvas指纹识别我们的爬虫需要模拟人类行为,使用代理IP池,并合理控制请求频率。

2201_76125261的博客 1020

python基础及网络爬虫

Python爬虫学习第一课,了解何为爬虫,python基础语法了解

记录学习路上的一些拙见 2864

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

浅谈 Python 网络爬虫的那些事

在大数据、人工智能应用越来越普遍的今天,Python 可以说是当下世界上热门、应用广泛的编程语言之一,在人工智能、爬虫、数据分析、游戏、自动化运维等各个方面,无处不见其身影。随着大数据时代的来临,数据的收集与统计占据了重要地位,而数据的收集工作在很大程度上需要通过网络爬虫来爬取,所以网络爬虫技术变得十分重要。

黛琳ghz的博客,期待你的关注。 6818

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

网络爬虫-Python网络爬虫和C#网络爬虫

C# 也可以用于网络爬虫开发,通过 HTTP 请求获取网页数据并进行解析。与 Python 类似,C# 也有相应的库和框架,虽然 C# 网络爬虫在简便性和灵活性上不如 Python,但在某些企业级应用中,C# 也表现出色。

weixin_42462436的博客 3400

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: Python爬虫笔记 | HTML基础
下一篇: Excel VBA | 一键批量生成对账单
MUYUN友逹
博客等级 码龄10年 77粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值