信息标记与信息提取
发布日期:2021-06-29 15:39:15 浏览次数:2 分类:技术文章

本文共 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()
 

转载地址:https://codingchaozhang.blog.csdn.net/article/details/76578609 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:各大网站CSS初始化代码
下一篇:基于bs4的HTML内容遍历方法

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月06日 09时05分46秒