强大的BeautifulSoup select选择器

select的功能跟find和find_all 一样用来选取特定的标签,它的选取规则依赖于css,我们把它叫做css选择器

  1. 通过标签查找,返回含有此标签的语句会按照列表的形式返回
print(soup.select('title'))
print(soup.select('meta'))
print(soup.select('h3'))
输出:
[百度新闻——海量中文资讯平台]
[, , ]
[

热搜新闻词HOT WORDS

,

新闻图片

,

新闻资讯

]
  1. 通过类名查找
print(soup.select('.li_8'))
print(soup.select('.hotwords_li_a'))

强大的BeautifulSoup select选择器_第1张图片
3.通过 id 名查找

print(soup.select('#sugarea'))
print(soup.select('#s_btn_wr'))

在这里插入图片描述
4组合查找
组合查找,即是可以把标签名和类名、标签名和id名组合,但是中间要用空格隔开,组合查找,先查找满足标签的语句,再接着查找该语句下满足类名或者id的语句

print(soup.select('td .s_btn_wr'))
print(soup.select('td #ww'))

在这里插入图片描述
5 直接子标签查找

print(soup.select('li > a'))
print(soup.select('td > div > span'))

强大的BeautifulSoup select选择器_第2张图片
6. 属性查找
查找时还可以加入属性元素,属性需要用中括号括起来,注意属性和标签属于同一节点,所以中间不能加空格,否则会无法匹配到。

print(soup.select('meta[content="text/html;charset=utf-8"]'))
print(soup.select('li a[href="http://my-h5news.app.xinhuanet.com/h5/article.html?articleId=3038ee236d8f4ac5f744538a9f441873"]'))

在这里插入图片描述
完整代码

import requests
import lxml
from bs4 import BeautifulSoup
#打开上次下载的html文档
with open(r'..\html\news.html','r') as file:
    html = file.read()
soup=BeautifulSoup(html,'lxml')
#通过标签查找,
print(soup.select('title'))
print(soup.select('meta'))
print(soup.select('h3'))
#通过类名查找
print(soup.select('.li_8'))
print(soup.select('.hotwords_li_a'))
#通过 id 名查找
print(soup.select('#sugarea'))
print(soup.select('#s_btn_wr'))
#组合查找
print(soup.select('td .s_btn_wr'))
print(soup.select('td #ww'))
#直接子标签查找
print(soup.select('li > a'))
print(soup.select('td > div > span'))
#属性查找
print(soup.select('meta[content="text/html;charset=utf-8"]'))
print(soup.select('li a[href="http://my-h5news.app.xinhuanet.com/h5/article.html?articleId=3038ee236d8f4ac5f744538a9f441873"]'))

你可能感兴趣的:(强大的BeautifulSoup select选择器)