“”"
TODO
# 用requests库获取网页html r = requests.get("https://python123.io/ws/demo.html") demo = r.text
“”"
- 对demo进行html的解析
soup =BeautifulSoup(demo, "html.parser")
- 格式化html打印出来
print(print(soup.prettify()))
- 打印title标签
print(soup.title)
- 打印内容的第一个a标签
print(soup.a)
- 打印a标签的属性
print(soup.a.attrs)
- 打印a标签的text内容
print(soup.a.string)
- 打印a标签的具体href连接属性
print(soup.a.attrs['href'])
- 打印a标签的名字,就是a
print(soup.a.name)
- 打印a标签的父标签名称
print(soup.a.parent.name)
- 获取a的父亲的父亲标签
print(soup.a.parent.parent.name)
- 获取head的子节点
print(soup.head.contents)
- 遍历子节点
for child in soup.body.children: print(child)
- 遍历子孙节点soup.body.descendants:
""" .patent 获取节点的父标签 .parents 获取节点的所有父节点 """ for parent in soup.a.parents: if parent is None: print(parent) else: print(parent.name)
- 获取a标签的后一个平行标签,中间的字符也会算为平行标签
print(soup.a.next_sibling)
- 获取a标签的后一个平行标签的后一个平行标签
print(soup.a.next_sibling.next_sibling)
- 获取a标签的前一个平行标签,中间的字符也会算为平行标签
print(soup.a.previous_sibling)
""" .next_siblings 遍历后续所有平行节点 .previous_siblings 遍历前续所有平行节点 """ for sibings in soup.a.next_siblings: print(sibings)
- 获取内容的所有a标签
soup.find_all("a") # 打印a中href属性 for link soup.find_all("a"): print(link.get('href'))
- 获取所有ab标签
soup.find_all(['a','b'])
- 获取p标签class包含xxx属性的标签
soup.find_add('p', 'xxx')
- 获取所有标签
soup.find_all(True)
- 寻找标签名包含b字符的所有标签
soup.find_all(re.compile('b'))
- 按固定id值寻找标签
soup.find_all(id='xxx')
- 按id值存在xx字符寻找标签
soup.find_all(id=re.compile('xxx'))
- recursive值,是否对子孙全部检索,默认True
soup.find_all('a', recursive = False) 设置为false后,只对子节点进行检索
- string检索是否存在text为xxx的标签
soup.find_all(string = "xxx")
- string检索是否存在text包含xxx的标签
soup.find_all(string = re.compile("xxx"))