博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
信息标记与信息提取
阅读量:1887 次
发布时间:2019-04-26

本文共 1762 字,大约阅读时间需要 5 分钟。

1.信息标记的三种形式

标记后的信息可形成信息组织结构增加了信息维度

标记后的信息可用于通信、存储或展示

标记的结构与信息一样具有重要价值

标记后的信息更利于程序理解和运用

 

三种形式:XML、JSON、YAML

 

2.HTML的信息标记

H:hyper

T:text

M:markup

L:language

 

3.三种信息标记形式的比较

XML:最早的通用信息标记语言,可扩展性好,但繁琐

JSON:信息有类型,适合程序处理(js),较XML简洁

YAML:信息无类型,文本信息比例高,可读性好

 

 

4.信息提取的一般方法

方法一:完整解析 信息的标记形式,再提取关键信息

需要标记解析器 例如:bs4库的标签树遍历

优点:信息解析准确

缺点:提取过程繁琐,速度慢

方法二:无视标记形式,直接搜索关键信息

对信息的文本查找函数即可

优点:提取过程简洁,速度较快

缺点:提取结果准确性欲信息内容相关

 

5.实例

提取HTML中所有URL链接

思路:(1)搜索到所有<a>标签

2)解析<a>标签格式,提取href后的链接内容

<>.find_all(name,attrs,recursive,string,**kwargs)

返回一个列表类型,存储查找的结果

name:对标签名称的检索字符串

attrs:对标签属性值的检索字符串,可标注属性检索

recursive:是否对子孙全部检索,默认为True

string:<>...</>中字符串区域的检索字符串

 

6中国大学排名定向爬虫

功能描述

输入:大学排名的URL连接

输出:大学排名信息的屏幕输出(排名,大学名称,总分)

技术路线:requests-bs4

定向爬虫:仅对输入URL进行爬取,不扩展爬取

 

步骤1:从网络上获取大学排名网页内容

getHTMLText()

步骤2:提取网页内容中信息到合适的数据结构

fillUnivList()

步骤3:利用数据结构展示并输出结果

printUnivList()

#CrawUnivRankingB.pyimport requestsfrom bs4 import BeautifulSoupimport bs4 def getHTMLText(url):    try:        r = requests.get(url, timeout=30)        r.raise_for_status()        r.encoding = r.apparent_encoding        return r.text    except:        return "" def fillUnivList(ulist, html):    soup = BeautifulSoup(html, "html.parser")    for tr in soup.find('tbody').children:        if isinstance(tr, bs4.element.Tag):            tds = tr('td')            ulist.append([tds[0].string, tds[1].string, tds[3].string]) def printUnivList(ulist, num):    tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"    print(tplt.format("排名","学校名称","总分",chr(12288)))    for i in range(num):        u=ulist[i]        print(tplt.format(u[0],u[1],u[2],chr(12288)))     def main():    uinfo = []    url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'    html = getHTMLText(url)    fillUnivList(uinfo, html)    printUnivList(uinfo, 20) # 20 univsmain()
 

转载地址:http://tawdf.baihongyu.com/

你可能感兴趣的文章
git报错sign_and_send_pubkey: signing failed: agent refused operation
查看>>
UR5e机械臂运行一直阻塞在waitForServer
查看>>
ROS把pkg1下的某个头文件和源文件生成动态链接库供pkg2调用
查看>>
SQl 数据完整性(随堂博客)
查看>>
利用MySQL进行数据复杂查询(1)
查看>>
MySQL 表与表之间的关系
查看>>
Python爬虫 百度热搜热点
查看>>
excel文本函数
查看>>
阿里云ECS服务器-Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法
查看>>
编程程软件测试思维方式:如何科学制定测试计划
查看>>
BLE蓝牙4.0串口调试助手
查看>>
树莓派WIFI设置
查看>>
在树莓派上安装GUI的FreeRadius(Raspberry PI based FreeRadius Server with GUI)
查看>>
Linux下EasyPanel版本安装及升级
查看>>
raspberry pi(树莓派) + easycap d60 视频采集
查看>>
WebRTC
查看>>
rfc5766-turn-server NAT
查看>>
webrtc详细教程
查看>>
Android IOS WebRTC 音视频开发总结
查看>>
报表图表样式
查看>>