欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
xml和html
XML(eXtensible Markup Language)和HTML(Hypertext Markup Language)都是标记语言,它们在某些方面相似,但也有很多不同之处。下面是它们之间的一些主要区别和共同点:
- 相似性:
XML和HTML都使用标记语言的形式来组织和描述数据。
它们都使用标签(尖括号包围的元素名称)和属性(键值对)来定义文档结构和内容。
用途:
HTML主要用于创建网页和网页内容的呈现,它包含了用于定义文本、图像、链接和其他元素的标记,以及用于样式和布局的CSS(层叠样式表)。
XML旨在传输和存储数据,而不是描述数据的外观或样式。它的设计目的是促进不同系统之间的数据交换和共享。
- 语法:
HTML具有预定义的标签和语法结构,用于定义页面的结构和内容。它有严格的规则,包括必须有正确的标签嵌套和封闭。
XML没有预定义的标签,允许用户根据需要创建自定义标签和标记。XML语法更灵活,只需要遵循基本的标签嵌套规则。
- 数据描述:
HTML描述了网页的结构和内容,其中包括文本、图像、链接等。它的主要目的是以易于理解和浏览的方式呈现信息。
XML描述了数据的结构和含义,但不涉及外观或样式。它可以用于表示任何类型的数据,例如配置文件、数据库导出、文档标记等。
- 应用领域:
HTML主要用于Web开发和网页设计,用于创建交互式的网页和在线应用程序。
XML在数据交换、配置文件、数据存储和Web服务等领域有广泛应用,尤其在跨平台数据交换和应用集成方面。
XML和HTML虽然都是标记语言,但用途、语法和应用场景有所不同。HTML用于网页设计和内容呈现,而XML用于数据交换和描述。
解析本地html文件
准备好html文件
访问url然后ctrl+s保存网页为发现你走远了-CSDN博客.html
文件
https://blog.csdn.net/u011027547
安装库
lxml是一个用于解析XML和HTML文档的Python库,它基于C语言的libxml2和libxslt库,提供了高性能和丰富的功能。lxml库具有以下特点和优势:
性能高效:由于底层使用C语言库进行解析和处理,lxml具有很高的性能。它快速地解析和处理大型XML文档,适用于处理复杂的数据结构和大量数据。
支持XPath和XSLT:lxml支持XPath(XML Path Language)和XSLT(eXtensible Stylesheet Language Transformations),使得在XML文档中进行快速、灵活的数据查找和转换成为可能。
丰富的功能:除了基本的XML和HTML解析功能外,lxml还提供了许多高级功能,如XML Schema验证、命名空间支持、文档修改和序列化等。
易于使用:lxml提供了简单直观的API,易于学习和使用。它提供了许多方便的方法来遍历和操作XML文档中的元素和属性。
稳定可靠:lxml是一个成熟的库,在Python社区中得到了广泛的应用和认可。它的稳定性和可靠性经过了长期的验证和改进。
pip install lxml
将本地HTML文件解析为html
html=etree.parse(path,parse)
from lxml import etree
#解析本地HTML文件
path=r'发现你走远了-CSDN博客.html'
parse=etree.HTMLParser() #创建HTMLParser对象
html=etree.parse(path,parse) #解析文件
text=etree.tostring(html,encoding='utf-8').decode('utf-8') #转换为字符串并编码,再解码为HTML代码
print(text)
解析字符串为html
html=etree.HTML(html_str)
from lxml import etree
#解析字符串HTML代码
path=r'发现你走远了-CSDN博客.html'
with open(path,'r',encoding='utf-8') as f:#按行读取文件内容为字符串
html_str=f.read()
html=etree.HTML(html_str)
text=etree.tostring(html,encoding='utf-8').decode('utf-8')
print(text)
解析requests爬虫得到的html
from lxml import etree
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0'}
url="https://blog.csdn.net/u011027547"
response=requests.get(url,headers=headers)
# 检查响应状态码
if response.status_code == 200:
print('请求成功!',response.status_code)
# 获取响应内容
html_str=response.text
print("html_str",html_str)
html = etree.HTML(html_str)
etree_text = etree.tostring(html, encoding='utf-8').decode('utf-8')
print("etree_text",etree_text)
else:
print('请求失败!',response.status_code)
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2023 mzh
Crated:2023-3-1
欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
『未完待续』