基于bs4库的HTML内容查找方法

  1、<>,find_all(name,attrs,recursive,string,**kwargs)

    返回一个列表类型,存储查找的结果

    name:对标签名称的检索字符串。

import requests
from bs4 import BeautifulSoup
import re
#BeautifulSoup是一个类
r = requests.get('http://python123.io/ws/demo.html')

print(r.text)
demo = r.text
#解析demo的解释器
soup = BeautifulSoup(demo,'html.parser')

soup.find_all('a')
soup.find_all(['a','b'])

for tag in soup.find_all(True):
    print(tag.name)

for tag in soup.find_all(re.compile('b')):
    print(tag.name)

    attrs:对标签属性值得检索字符串,可标注属性检索。

#承接上面的demo
soup.find_all('p','course')
soup.find_all(id='link1')
#我的demo中不包括link
soup.find_all(id='link')

soup.find_all(id=re.compile('link'))

    recursive:是否对子孙全部检索,默认True

#返回的是一个空列表,这意味着是从soup的根节点开始,a标签应该在子孙的后续节点中
print(soup.find_all('a',recursive=False))

    string:<>...</>中字符串区域的检索字符串。

print(soup)
#必须精确的输入字符串信息
print(soup.find_all(string = 'Basic Python'))
#如果希望输入一个字符串,检索出更多的信息
print(soup.find_all(string = re.compile('python')))

  2、简短表示

    <tag>(..)等价于<tag>.find_all(..)

    soup(..)等价于soup.find_all(..)

  3、七个扩展方法

    

原文地址:https://www.cnblogs.com/fb1704011013/p/11116814.html