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网络爬虫与信息提取[信息的组织与提取](单元五)的更多相关文章

  1. Python网络爬虫与信息提取

    1.Requests库入门 Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests ...

  2. 第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 4.提供图片或网站显示的学习进 ...

  3. 第三次作业-Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 过程. 5.写一篇不少于100 ...

  4. 第三次作业-MOOC学习笔记:Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 第一周 Requests库的爬 ...

  5. Python网络爬虫与信息提取笔记

    直接复制粘贴笔记发现有问题 文档下载地址//download.csdn.net/download/hide_on_rush/12266493 掌握定向网络数据爬取和网页解析的基本能力常用的 Pytho ...

  6. 【学习笔记】PYTHON网络爬虫与信息提取(北理工 嵩天)

    学习目的:掌握定向网络数据爬取和网页解析的基本能力the Website is the API- 1 python ide 文本ide:IDLE,Sublime    Text集成ide:Pychar ...

  7. Python网络爬虫与信息提取(一)

    学习 北京理工大学 嵩天 课程笔记 课程体系结构: 1.Requests框架:自动爬取HTML页面与自动网络请求提交 2.robots.txt:网络爬虫排除标准 3.BeautifulSoup框架:解 ...

  8. PYTHON网络爬虫与信息提取[scrapy框架应用](单元十、十一)

    scrapy 常用命令 startproject  创建一个新的工程 scrapy startproject <name>[dir] genspider    创建一个爬虫         ...

  9. Python网络爬虫与信息提取(二)—— BeautifulSoup

    BeautifulSoup官方介绍: Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. 官方 ...

随机推荐

  1. HAVING方法也是连贯操作之一

    HAVING方法也是连贯操作之一,用于配合group方法完成从分组的结果中筛选(通常是聚合条件)数据. having方法只有一个参数,并且只能使用字符串,例如: $this->field('us ...

  2. Microsoft store打不开,解决办法

    1.打开电脑,点击左下角的图标开始,然后找到设置选项,也可以直接使用快捷键win+i: 2.在弹出的新页面中有很多选项功能,找到并且点击”网络和Internet“选项: 3.查看网络连接方式,如果是宽 ...

  3. java基础之Character类概述

    Character 类 在对象中包装一个基本类型 char 的值 此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然 构造方法 public Cha ...

  4. PKUOJ 区间内的真素数

    http://bailian.openjudge.cn/tm2018/A/ #include <iostream> #include <math.h> #include < ...

  5. LUOGU P2675 《瞿葩的数字游戏》T3-三角圣地

    题面 解题思路 手推可以得出,最后每个数字的贡献其实就是第n行杨辉三角数,然后直接卢卡斯直接算(今天才找到lucas定理时间复杂度是log n,log以模数为底).代码略麻烦,不想改了. 代码 #in ...

  6. 19-10-19-I

    中午考试困够呛. T1 我想打矩阵快速幂,然后我咕了 T2 打T1了所以又咕了. T3 每一个黑点更新答案只有两种方式: 更新子树. 更新父链上的兄弟,叔伯,…… 于是: 把树拍在$DFS$序上. 更 ...

  7. 19.10.14-Q

    小$P$的咕事 总结: 还行,就是$T1$写的慢了,$T2,T3$暴力有点锅 T1 小模拟. 打就是了. 可以小小的手玩一下. (考试的时候某同志人肉对拍了$20min$)=.= 418 ms 360 ...

  8. skyline(TG,arcgis server)BS系统部署

    skyline的BS系统部署,正常情况下应该是TG来统一管理,SFS对矢量数据服务进行管理.但我们一直是试用许可安装的TG,发现SFS要么安装不成功,要么就是不稳定.对于Fly工程可以通过Publis ...

  9. 稀疏表示step by step(转)

    原文地址:稀疏表示step by step(转)作者:野火春风 稀疏表示step by step(1)     声明:本人属于绝对的新手,刚刚接触“稀疏表示”这个领域.之所以写下以下的若干个连载,是鼓 ...

  10. JMETER的三个线程组

    JMETER的三个线程组 Jmeter有三个线程组分类:Thread Group(线程组).setUp Thread Group.tearDown Thread Group,如下图所示: (1).th ...