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 -- 信息标记与提取相关推荐

  1. 丑憨批的爬虫笔记5信息标记与提取

    0.信息标记的三种形式 信息标记的作用 HTML:超文本标记 种类:3种 XML 无内容则一个尖括号 Json Yaml 用缩进表达从属关系,-表示并列关系 1.三种信息标记形式的比较 2.信息提取的 ...

  2. Python 网络爬虫笔记10 -- Scrapy 使用入门

    Python 网络爬虫笔记10 – Scrapy 使用入门 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接: ...

  3. Python 网络爬虫笔记11 -- Scrapy 实战

    Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...

  4. Python 网络爬虫笔记9 -- Scrapy爬虫框架

    Python 网络爬虫笔记9 – Scrapy爬虫框架 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...

  5. Python 网络爬虫笔记8 -- 股票数据定向爬虫

    Python 网络爬虫笔记8 – 股票数据定向爬虫 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyth ...

  6. Python 网络爬虫笔记6 -- 正则表达式

    Python 网络爬虫笔记6 – 正则表达式 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Python网 ...

  7. Python 网络爬虫笔记5 -- Beautiful Soup库实战

    Python 网络爬虫笔记5 – Beautiful Soup库实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. ...

  8. Python 网络爬虫笔记3 -- Beautiful Soup库

    Python 网络爬虫笔记3 – Beautiful Soup库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程 ...

  9. Python 网络爬虫笔记1 -- Requests库

    Python 网络爬虫笔记1 – Requests库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyt ...

最新文章

  1. 列运算_Power Query列运算的几种方法比较
  2. 最小生成树和最短路径
  3. 谭浩强C语言第四版第九章课后习题7--9题(建立,输出,删除,插入链表处理)...
  4. Python基础函数学习笔记(三)
  5. docker安装详细教程
  6. pe擦除服务器硬盘,老毛桃winpe分区助手删除分区后如何用Gutmann算法擦除硬盘数据?...
  7. 查找100-200以内素数
  8. 1、vinc = vict 胜、征服
  9. 平板游戏交互式设计的10大规则
  10. 求一个n阶矩阵的转置矩阵
  11. CentOS7通过SpeedTest工具网络测速
  12. 山东大学青岛校区,拟筹建工业互联网国家重点实验室!
  13. 图片数据增强,包括模糊,亮度,裁剪,旋转,平移,镜像 ,python ,LabelImg,LabelMe工具
  14. 计算机专业课题 结题报告,《有效技能研究与实践》课题结题报告
  15. 数据结构初阶——链式二叉树
  16. 测试工程师各类工具介绍
  17. python常用关键字意思_Python 关键字列表及示例
  18. 刚子扯谈:酒装狗熊胆
  19. Python - 海龟图
  20. 计算机一级msoffice考试操作题教程,计算机一级《MS Office》上机操作练习题

热门文章

  1. oracle学习笔记(十八) PL/SQL 游标
  2. Hadoop+Hbase分布式集群架构“完全篇”
  3. Prim算法的3个版本
  4. CentOS常用指令
  5. 发布在IIS的网站,可以用本机IP登录访问,用localhost不可登录访问
  6. unity3d优化总结篇
  7. Discuz x 默认模板文件目录说明
  8. 我是SQL小菜鸟---SQL全局临时表防止用户重复登录
  9. MyEclipse配置DataBase Explorer
  10. MongoDB优越性