Python 网络爬虫笔记4 -- 信息标记与提取
Python 网络爬虫笔记4 – 信息标记与提取
Python 网络爬虫系列笔记是笔者在学习嵩天老师的《Python网络爬虫与信息提取》课程及笔者实践网络爬虫的笔记。
课程链接:Python网络爬虫与信息提取
参考文档:
Requests 官方文档(英文)
Requests 官方文档(中文)
Beautiful Soup 官方文档
re 官方文档
Scrapy 官方文档(英文)
Scrapy 官方文档(中文)
一、信息标记
1、XML:标签
- 标签格式:< name> … < /name>
- 空标签:< name />
- 注释:<!‐‐ ‐‐>
<person><firstName>Tian</firstName><lastName>Song</lastName><address><streetAddr>中关村南大街5号</streetAddr><city>北京市</city><zipcode>100081</zipcode></address><prof>Computer System</prof><prof>Security</prof>
</person>
2、JSON:有类型的键值对key:value
- 键值对单个值:“key” : “value”
- 键值对多个值:“key” : [“value1”, “value2”]
- 嵌套键值对:“key” : {“subkey” : “subvalue”}
{
“firstName” : “Tian” ,
“lastName” : “Song” ,
“address” : {“streetAddr” : “中关村南大街5号” ,“city” : “北京市” ,“zipcode” : “100081”} ,
“prof” : [ “Computer System” , “Security” ]
}
3、YAML:无类型键值对key:value
- 键值对单个值:key : value
- 键值对多个值:
key : #Comment
‐value1
‐value2 - 嵌套键值对:
key :
subkey : subvalue
firstName : Tian
lastName : Song
address :streetAddr : 中关村南大街5号city : 北京市zipcode : 100081
prof :
‐Computer System
‐Security
二、信息提取
1、信息提取一般方法
形式解析: 完整解析信息的标记形式,再提取关键信息
优点:信息解析准确
缺点:提取过程繁琐,速度慢
搜索: 无视标记形式,直接搜索关键信息
优点:提取过程简洁,速度较快
缺点:提取结果准确性与信息内容相关
融合方法: 结合形式解析与搜索方法,提取关键信息
2、基础查找方法:find_all
函数原型:
find_all(name, attrs, recursive, string, **kwargs)
参数:
- name:要检索标签的名称字符串
- attrs:要检索标签属性值的字符串,可标注属性检索
- recursive:是否对子孙全部检索,默认True
- string:<>…</>中字符串区域的检索字符串
- **kwargs:可选参数
返回: 检索结果的列表
实例:
import requests
from bs4 import BeautifulSoupdef html_search():"""检索 HTML 内容,提取信息:return:"""html = requests.get('https://python123.io/ws/demo.html')soup = BeautifulSoup(html.text, 'html.parser')# 检索标签print(soup.find_all('a'))print(soup.find_all(['a', 'b']))# 检索标签属性print(soup.find_all('p', 'course'))print(soup.find_all(id='link1'))# 检索字符串print(soup.find_all(string='python'))if __name__ == '__main__':print('running bs:')html_search()
简写:
- < tag>(…) 等价于 < tag>.find_all(…)
- soup(…) 等价于 soup.find_all(…)
3、其它查找方法
方法 | 说明 |
---|---|
<>.find() | 搜索且只返回一个结果,同.find_all()参数 |
<>.find_parents() | 在先辈节点中搜索,返回列表类型,同.find_all()参数 |
<>.find_parent() | 在先辈节点中返回一个结果,同.find()参数 |
<>.find_next_siblings() | 在后续平行节点中搜索,返回列表类型,同.find_all()参数 |
<>.find_next_sibling() | 在后续平行节点中返回一个结果,同.find()参数 |
<>.find_previous_siblings() | 在前序平行节点中搜索,返回列表类型,同.find_all()参数 |
<>.find_previous_sibling() | 在前序平行节点中返回一个结果,同.find()参数 |
Python 网络爬虫笔记4 -- 信息标记与提取相关推荐
- 丑憨批的爬虫笔记5信息标记与提取
0.信息标记的三种形式 信息标记的作用 HTML:超文本标记 种类:3种 XML 无内容则一个尖括号 Json Yaml 用缩进表达从属关系,-表示并列关系 1.三种信息标记形式的比较 2.信息提取的 ...
- Python 网络爬虫笔记10 -- Scrapy 使用入门
Python 网络爬虫笔记10 – Scrapy 使用入门 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接: ...
- Python 网络爬虫笔记11 -- Scrapy 实战
Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...
- Python 网络爬虫笔记9 -- Scrapy爬虫框架
Python 网络爬虫笔记9 – Scrapy爬虫框架 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...
- Python 网络爬虫笔记8 -- 股票数据定向爬虫
Python 网络爬虫笔记8 – 股票数据定向爬虫 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyth ...
- Python 网络爬虫笔记6 -- 正则表达式
Python 网络爬虫笔记6 – 正则表达式 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Python网 ...
- Python 网络爬虫笔记5 -- Beautiful Soup库实战
Python 网络爬虫笔记5 – Beautiful Soup库实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. ...
- Python 网络爬虫笔记3 -- Beautiful Soup库
Python 网络爬虫笔记3 – Beautiful Soup库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程 ...
- Python 网络爬虫笔记1 -- Requests库
Python 网络爬虫笔记1 – Requests库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyt ...
最新文章
- 列运算_Power Query列运算的几种方法比较
- 最小生成树和最短路径
- 谭浩强C语言第四版第九章课后习题7--9题(建立,输出,删除,插入链表处理)...
- Python基础函数学习笔记(三)
- docker安装详细教程
- pe擦除服务器硬盘,老毛桃winpe分区助手删除分区后如何用Gutmann算法擦除硬盘数据?...
- 查找100-200以内素数
- 1、vinc = vict 胜、征服
- 平板游戏交互式设计的10大规则
- 求一个n阶矩阵的转置矩阵
- CentOS7通过SpeedTest工具网络测速
- 山东大学青岛校区,拟筹建工业互联网国家重点实验室!
- 图片数据增强,包括模糊,亮度,裁剪,旋转,平移,镜像 ,python ,LabelImg,LabelMe工具
- 计算机专业课题 结题报告,《有效技能研究与实践》课题结题报告
- 数据结构初阶——链式二叉树
- 测试工程师各类工具介绍
- python常用关键字意思_Python 关键字列表及示例
- 刚子扯谈:酒装狗熊胆
- Python - 海龟图
- 计算机一级msoffice考试操作题教程,计算机一级《MS Office》上机操作练习题