python-bs4

        bs4是用于从HTML和XML 文件中获取数据的python库,它能够通过自己喜欢的转换器实现惯用的文档导航,查找,修改文档,本章中主要简述和lxml结合实现标签定位和标签的提取,bs4全称BeautifulSoup.

1. 环境安装
pip install bs4
pip install lxml
2. bs4的使用
2.1模块的导入
from bs4 import BeautifulSoup
import lxml
import requests

#获取网页内容
response = requests.get(url=url).text
#创建一个Beautiful Soup对象
soup = BeautifulSoup(reponse,'lxml')

#获取本地内容
flie = open("index.html","r",encoding="utf-8")
soup = BeautifulSoup(file,'lxml')

soup = BeautifulSoup(open('index.html'),'lxml')
2.2常用命令
print(soup) #打印html全部内容

#soup.tagName 返回html中第一出现的tagName标签
print(soup.tagName)
2.3 find
#查找单个元素
print(soup.find('tagName')) #等同于soup.tagName

#属性定位   返回div模块下class为空的模块
print(soup.find('div',class_=""))

#返回div模块下class为man的模块
print(soup.find("div",class_="man"))
2.4 find_all
#find_all 以列表的形式返回所有符合要求的标签
print(soup.find_all(tag.Name))

print(soup.find_all("a")) #以列表的形式返回网页中a标签内容
2.5 select
#以列表形式返回所有匹配到的标签
print(soup.select('tag.Name'))

#以列表的形式返回网页a标签的内容
print(soup.select("a"))

层级

#层级选择>表示1个层级
print(soup.select('tag.Name > tag.Name > tag.Name')) 

#空格表示多个层级
print(soup.select('tag.Name > tag.Name tag.Name'))

#返回man标签下url层级之下的a标签
print(soup.select('.man > ul a'))
2.6 获取标签之间的文本数据
soup.a.text/string/get_text()

#text/get_text() 获取某一个标签中所有的文本内容
#string 只可以获取该标签下直系的文本内容
#去网页中man标签下url之下的a标签返回成列表取出id为0的文本内容
print(soup.select('.man > ul a')[0].text)
2.7 获取标签中的属性值
soup.tag.Name['href']
#以列表的形式获取页面中man标签下的ul标签下的a标签内容,获取id为1的属性值
print(soup.select('.man > ul a')[1]['href'])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值