子节点
一个Tag可能包含多个字符串或其它的Tag,这些都是这个Tag的子节点.BeautifulSoup提供了许多操作和遍历子节点的属性.
注意: BeautifulSoup中字符串节点不支持这些属性,因为字符串没有子节点
一、实例代码
import urllib
from urllib import request
from bs4 import BeautifulSoup
import re
#获取页面
base_url = "http://www.3qphp.com/php/index.html"
urlb = urllib.request.urlopen(base_url)
cent = urlb.read()#解析出链接地址
soup = BeautifulSoup(cent,"html.parser")
slink = soup.find_all("a",href=re.compile(r"\/php\/(.+?)\/(\d+).html"))
#判断获取没有定义class属性,并且子标签中没有span的所有a标签
for link in slink:
if 'class' not in link.attrs and link.contents[0].name != 'span':
print(link)
二、重点知识点BeautifulSoup中attrs和contents属性:
link.attrs
link.contents[0].name
三、BeautifulSoup官方文档解释
tag的 .