python网络爬虫和信息提取——第二篇——Beatiful Soup库

相当于对应一个HTML/XML文档的全部内容
使用:

from bs4 import BeatifulSoup
soup=BeatifulSoup(‘<p>data</p>’,’html.parser’)

在这里插入图片描述
Beatiful Soup类的基本元素
在这里插入图片描述

import requests
r=requests.get('https://python123.io/ws/demo.html')
demo=r.text

标签树的下行遍历
在这里插入图片描述
标签树的下行遍历,遍历儿子节点

for child in soup.body.children:
	print(child)

标签树的上行遍历
在这里插入图片描述

soup=BeatifulSoup(demo,'html.parser')
	for parent in soup.a.parents:
		if parent is None:
			print(parent)
		else:
			print(parent.name)

标签树的平行遍历
在这里插入图片描述

for sibling in soup.a.next_siblings:
	print(sibling)
for siblings in soup.a.previous_siblings:
	print(sibling)

bs4的格式化输出
soup.prettify():机器方便阅读
print(soup.prettify()):变成html人方便阅读模式
信息标记
XML:

eXtensible Markup Language(标签表达)

JSON:

javaScript  object Notation(有类型的键值对
			'key':['value1','value2']
			'key':'value'
			'key':{'subkey':'subvalue'})

YAML:

YAML Ain't Markup Language(无类型键值对
			key:#Comment
			-value1
			-value2
			key:
				subkey:subvalue
			-表达并列关系
			name:
			-北京理工大学
			-延安自然科学院
			| 表达整块数据 #表示注释
			text:|#学校介绍)

信息提取一般方法

方法一:完整解析信息的标记形式,再提取关键信息。
		XML,JSON,YAML
		需要标记解析器	例如:bs4库的标签树遍历,准确,速度慢
方法二:无标记形式,直接搜索关键信息
		搜索
		对信息的文本查找函数即可
		简介速度快,提取结果准确性与信息内容相关

在这里插入图片描述

实例

提取HTML中所有URL链接
1)搜索所有a标签
2)解析a标签,提取url后的链接内容

for link in soup.find_all('a'):
	print(link.get('href'))

在这里插入图片描述
功能:
输入:大学排名URL链接
(http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html)
输出:大学排名信息的屏幕输出
定向爬虫:对输入链接爬取数据

技术路线:requests-bs4
步骤一:获取大学排名网页内容
		getHTMLText()
步骤二:提取网页内容中的信息到合适得数据结构
		fillUnivList()
步骤三:利用数据结构展示并输出结果
		printUnivList()

拓展
format在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值