Python之解析html内容
开始学习崔庆才的《Python3网络爬虫开发实战》
里面有段有趣的html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>This is a Demo</title> #显示
</head>
<body>
<div id="container">
<div class="wrapper">
<h2 class="title">Hello Wolrd</h2> #显示
<p class="text">Hello, my name is Jieyun, you can call me June.</p> #显示
</div>
</div>
</body>
</html>
下面贴一下上面这段程序最后保存为.html格式后的显示效果
<head> </head>
中间的<title>This is a Demo</title>
显示在网页标签中
<body></body>
中间的<h2 class="title">Hello Wolrd</h2>
显示的为网页内容的标题
<body></body>
中间的<p class="text">Hello, my name is Jieyun, you can call me June.</p>
显示的是网页中的主题内容
记录一下这个容易理解的html可以以一种简单的视角切入到html理解中。
解析html内容第一步,如何根据网页节点选择需要的内容
上面的html中有一句<div id="container">
,div节点的id为container,那么想要选择整个<div id="container"></div>
做包含的内容时,可以写.select(#container)
(这是BeautifulSoup中利用select进行选择)
简单粗暴点,选择时id="container"
写成.select(#container)
、class="wrapper"
写成.select(.wrapper)
如何提取到
Hello, my name is Jieyun, you can call me June.
这句话呢?
剥洋葱,一层剥一层,.select(#container .wrapper p)
就能准确定位到上面那句话。
那么标题怎么选择定位呢?
当然是.select(#container .wrapper h2)
了,光说不练假把式,我们用Python3来完成整个过程吧。
Python3的内容选择
步骤:
1 首先建立按照上述第一段代码写个txt,再保存为html格式
2 利用BeautifulSoup+select完成内容选择
下面这段程序首先参考了程序来源,因为我只get过url,没有直接从本地打开过html,我百度了【python从本地读取html文件】,在源程序的基础上改了一点,不影响本真操作,毕竟只是为了得到soup再完成select选择这一功能
from bs4 import BeautifulSoup
file=open(r'C:\Users\gui\Desktop\CSDN\simpleHtml.html') #打开html
Soup = BeautifulSoup(file.read(), 'lxml') #file本身是一个HTTPResponse类型的对象,通过调用它的read属性返回网页内容
title=Soup.select('#container .wrapper h2') #定位标题
context=Soup.select('#container .wrapper p') #定位主体内容
print(title[0].text)
print(context[0].text)
下面是执行结果:
Python之解析html内容相关推荐
- python中读取文件内容-深入学习python解析并读取PDF文件内容的方法
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
- 用Python提取解析pdf文档中内容
用Python提取解析pdf文档中内容 文章目录: 参考: 1.https://blog.csdn.net/tmaczt/article/details/82876018 # Tika库 2.http ...
- 【Python beautiful soup】如何用beautiful soup 解析HTML内容
美丽汤(Beautiful Soup)是一个流行的Python库,用于从HTML或XML文件中提取数据.它将复杂的HTML文件转化为一个Python对象,使得用户可以更方便地解析.搜索和修改HTML内 ...
- Python实现IMAP协议接收并解析邮件内容
Python实现IMAP协议接收并解析邮件内容 **前言:**昨天接到这个任务,然后搜索了很多资料和博客去看,这些资料链接我会放在本文后面 一.开通IMAP服务 我以网页邮箱(163邮箱为例) 1.登 ...
- python使用pdfminer解析页面内容,得到内容的详细坐标
官方文档地址:https://pdfminersix.readthedocs.io/en/latest/reference/index.html github地址:https://github.com ...
- 了解女友的心还不如了解Python之在Python中解析和修改XML
2021年12月15日 10:14 · 阅读 30 摘要: 工作中我们时常需要解析用不同语言编写的数据.Python 提供了许多库来解析或拆分用其他语言编写的数据.在这篇 Python XML 解析 ...
- python列表解析的新方法
python 列表解析我感觉是python非常灵活的一个地方,一开始接触它的时候,特别是之前学过其它的语言, 你会感觉很不习惯,怎么看怎么不对劲,老是觉的哪个地方怪怪的,这就是列表解析的魔力所在. p ...
- 如何在Python中解析YAML文件
如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...
- python xml解析dom_如何解析python中表示xml.dom.minidom节点的字符串?
我有一个使用xml.dom.minidom创建的nodes xml.dom.Node对象的集合.通过使用Node对象的toxml()方法将它们转换为字符串,我将它们(单独)存储在数据库中. 问题是,有 ...
最新文章
- UIAutomator简介
- jsp mysql优点_asp、php、asp.net、jsp的介绍和各自的优缺点
- pip 安装模块时报“pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonh”
- 选数 2002年NOIP全国联赛普及组
- GMSSL双证书认证C/S(Linux版)
- 2022Java学习笔记十二(数组的遍历,数组遍历求和,数组排序,数组随机排名案例,数组猜数字游戏案例,数组求最大值案例,数据遍历求和案例)
- Ubuntu交叉编译U-boot
- AMD AM4主板首曝:A320芯片组 惠普打造
- 产品破局思考:一个思维,一种策略
- python ln()怎么实现_python循序渐进_python简介
- Android——AndroidStudio主题样式、字体设置
- 远程桌面协议 (RDP)
- matlab考试复习题
- 凯新生物高分子FITC-PEG-NHS的简介,Fluorescein-PEG-NHS
- 开源地图编辑器 Marble Map
- 毕设微信小程序之访问ssm后台连接数据库
- python 画虚线_Python数据可视化 - matplotlib
- 区块链入门系列之共识算法
- csv和excel php 解析_php读取csv中文
- 微信 发放代金券 api