爬虫(四)信息提取

网友投稿 234 2022-09-22

爬虫(四)信息提取

0.信息标记的三种形式

标记后的信息可用于通信、存储或展示,标记的结构与信息一样具有重要价值。

(1)XML(eXtensible Markup Language)

(2)JSON(JavaScript Object Notation)

JSON可以作为JavaScript程序的一部分。

有类型的键值对 key:value 如"name":["浙江大学","北京大学"],即对应多个值。

(3)YAML(YAML Ain't Markup Language)

无类型的键值对 key:value

用减号对齐表示并列信息,#号表示注释,无类型(不加双引号)。

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

2.信息标记的一般方法:

(一)方法一:完整解析信息的标记形式,再提取关键信息,需要标记解析器,例:bs4库的标签树遍历

优点:信息解析准确

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

(二)方法二:无视标记形式,直接搜索关键信息,对信息的文本调用查找函数即可。

优点:提取过程间接,速度较快

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

融合方法:结合形式解析与搜索方法,提取关键信息,需要标记解析器及文本查找函数。

下面提取HTML中所有URL连接

思路:1)搜索到所有标签

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

>>> from bs4 import BeautifulSoup>>> soup=BeautifulSoup(demo,"html.parser")>>> for link in soup.find_all('a'): print(link.get('href'))soup.find_all('a')[Basic Python, Advanced Python]>>> soup.find_all(['a','b'])[The demo python introduces several python courses., Basic Python, Advanced Python]>>> for tag in soup.find_all(True): print(tag.name)htmlheadtitlebodypbpaa>>> import re>>> for tag in soup.find_all(re.compile('b')): print(tag.name)bodyb>>> soup.find_all('p','courser')[]>>> soup.find_all('p','course')[

Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:Basic Python and Advanced Python.

]>>> soup.find_all(id='link1')[Basic Python]>>> soup.find_all(id='link')[]>>> import re>>> soup.find_all(id=re.compile('link'))[Basic Python, Advanced Python]>>> soup.find_all('a')[Basic Python, Advanced Python]>>> soup.find_all('a',recursive=False)[]>>> soupThis is a python demo page

The demo python introduces several python courses.

Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:Basic Python and Advanced Python.

>>> soup.find_all(string="Basic Python")['Basic Python']>>> import re>>> soup.find_all(string=re.compile("Python"))['Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:\r\n', 'Basic Python', 'Advanced Python']

简写形式:

扩展方法:

4.单元小结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:AI论文探讨室·A+·第6期-Translating Visual Art into Music
下一篇:抖音首次发布“心动餐厅”榜单,火锅类霸榜!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~