PYTHON网络爬虫与信息提取[信息的组织与提取](单元五)
1 三种信息类型的简介
xml : extensible markup language
与html非常相似
现有html后有xml
xml是html发展来的 扩展 通用
json 类型
javascript object notation
有类型的键值对 表达的方式
一个key对应多个值
"key1":["asas",''asas'']
嵌套使用
"name":{
"newname":“北京理工大学”
"oldname":"延安自然科学院"
}
yaml (yaml ain't markup language) :)
name: 北京理工大学 无类型的
通过缩写表示所属的相关关系(嵌套)
name:
oldname:xxxxx
newname:sasas
通过减号表达并列关系
name :
-xxxxxx
-asasasas
竖线表示整块数据
text:|
asdadsssssssssssssdsd
sdadasdasdasdasdasd
asdasd
#表示注释
xml 世界上最早的通用信息标记语言 ,可拓展性好
json 信息有类型,适合程序处理,简介
yaml 信息无类型 文本型息比例最好,可读性好
xml internet上的交互与流动
json 程序对借口的使用,云端 但是无注释
yaml 各类系统的配置文件 有注释易读
2 信息提取的一般方法
方法一:完整解析信息的标记形式,需要表及解析器 列如 bs4的标签书遍历
繁琐慢;
方法二:无视标记信息,直接提取关键信息,利用文本查找
准确性与内容相关
融合方法:结合形式解析与搜索方法
例:
提取html上所有的URL链接
1.找到所有的a标签
2.找到a标签中的href?
form bs4 import BeautifulSoup
soup=BeautifulSoup(demo,"html.parser")
for link in soup.find_all("a"):
print(link.get("href"))
3基于BeautifulSoup的内容查找
方法find_all(name,attrs,recursive,string,**kwargs)
返回一个列表类型,存储查找的结果
soup.find_all("a”)
soup,find_all(["a","b"]) 同时查找ab标签
for tag in soup.find_all(True):
print(tag.name)
可以打印该soup中的所有tag信息
import re
for tag in soup.find_all(re.compile("b")):
print(tag.name)
打印以b开头的
attrs
查找p标签中带有course属性值的的
soup.find_all("p","course")
//soup.find_all("p",attrs={"ssdsd":"dssds})
也可以约定是某一个属性为XX
soup.find_all(id="link1")
#id属性为link1
import re //利用正则表达式
recursive 表示是否对所有子孙都搜索 默认为TRUE
soup.find_all("a")
string 对标签中的字符穿检索的属性
例:
soup.find_all(string="Basic python")
也可以用正则表达式
简短形式
<tag>() 等价于 <tag>.find_all()
soup(...)等价于 soup.find_all()
7个拓展方法
find 只返回一个结果 字符串类型
find_parents 只在先辈节点中搜索,返回一个列表
find_parent 只在黔北节点中搜索,返回结果 字符串类型一个
find_next_siblings只在后续平行节点中搜索,返回列表类型
find_next_sibling 同上只返回一个 字符串类型
find_previous_siblings
find_previsou_sibling 同上
差不多
PYTHON网络爬虫与信息提取[信息的组织与提取](单元五)的更多相关文章
- Python网络爬虫与信息提取
1.Requests库入门 Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests ...
- 第3次作业-MOOC学习笔记:Python网络爬虫与信息提取
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 4.提供图片或网站显示的学习进 ...
- 第三次作业-Python网络爬虫与信息提取
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 过程. 5.写一篇不少于100 ...
- 第三次作业-MOOC学习笔记:Python网络爬虫与信息提取
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 第一周 Requests库的爬 ...
- Python网络爬虫与信息提取笔记
直接复制粘贴笔记发现有问题 文档下载地址//download.csdn.net/download/hide_on_rush/12266493 掌握定向网络数据爬取和网页解析的基本能力常用的 Pytho ...
- 【学习笔记】PYTHON网络爬虫与信息提取(北理工 嵩天)
学习目的:掌握定向网络数据爬取和网页解析的基本能力the Website is the API- 1 python ide 文本ide:IDLE,Sublime Text集成ide:Pychar ...
- Python网络爬虫与信息提取(一)
学习 北京理工大学 嵩天 课程笔记 课程体系结构: 1.Requests框架:自动爬取HTML页面与自动网络请求提交 2.robots.txt:网络爬虫排除标准 3.BeautifulSoup框架:解 ...
- PYTHON网络爬虫与信息提取[scrapy框架应用](单元十、十一)
scrapy 常用命令 startproject 创建一个新的工程 scrapy startproject <name>[dir] genspider 创建一个爬虫 ...
- Python网络爬虫与信息提取(二)—— BeautifulSoup
BeautifulSoup官方介绍: Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. 官方 ...
随机推荐
- Elasticsearch基本命令
检查集群运行情况: GET -> localhost:9200/_cat/health?v 查看集群节点列表: GET -> localhost:9200/_cat?n ...
- android Serializable 和 Parcelable 区别
android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable. 一 序列化原因: 1.永久性保存对象,保存对象的字节序列到本地文件中:2.通过 ...
- android 头像选择以及裁剪
一.布局申明 <ImageView android:id="@+id/head_image" android:layout_width="80dp" an ...
- LintCode_1 单例模式
从今天开始我的LintCode之旅,由于C/C++好久没有使用了,语法生疏不说,低级错误频繁出现,因此在做题之后,还会有部分时间复习语法项目. ---------------------------- ...
- JEECMS 自定义标签
CMS 是”Content Management System” 的缩写,意为” 内容管理系统”. 内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场.对于内容管理,业界还没有一个统 ...
- 博弈论 | 暑期集训Day2学习总结
今天的知识点为博弈论. 相比于昨天完全陌生难懂的概念,今天接触到的东西应该算是非常容易理解了,一下子又对ACM的学习重拾信心.毕竟game作为主题也吸引眼球,每种博弈背景下引入的游戏介绍也十分有趣.主 ...
- Java 常用正则表达式
一. 只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$".只能输入至少n位的数字:"^\d{n,}$".只能输入m~ ...
- Luogu P2101 命运石之门的选择(分治+搜索)
P2101 命运石之门的选择 题意 题目描述 在某一条不知名世界线的冈伦今天突然接到了一条\(dmail\),上面说世界线将会发生巨大变动,未来的他无论如何都无法扭转这种变动回到原来的世界线.而世界线 ...
- 08.Hibernate的一级缓存-->>Session
Hibernate提供了两种缓存: 1.一级缓存:自带的不可卸载的,一级缓存的生命周期与Session一致,一级缓存成为Session级别的缓存 2.二级缓存:默认没有开启,需要手动配置才可以使用,二 ...
- tinyint(1)遇到的坑
一. Mysql查询的boolean结果将输出为0或者1. 比如: select 1=1; 其输出结果为1. 二. 使用一套中间件对kafka消息进行解析为mysql 语句,其中遇到如下的问题, 目标 ...