from bs4 import BeautifulSoup
语法
soup = BeautifulSoup('源码', 'lxml')
html = """
<html><head><title>学习爬虫好开心</title></head>
<body>
<p class="title" name="dromouse"><b>( ̄TT ̄)笔芯</b></p>
<p class="story">喵了个猫
<a href="http://example.com/elsie" class="sister" id="link1">汪汪汪,汪星人</a> and
<a href="http://example.com/lacie" class="sister" id="link2">喵喵喵,喵星人</a>
最后变成一锅高汤</p>
<p class="story">...</p>
"""
标签解释器
soup = BeautifulSoup(html, 'lxml')
通过soup对象,标签获取整个标签的内容
通过soup对象,标签.string获取到标签内容
print(soup.title)
print(soup.title.string)
soup.p 获取的是第一个p标签的内容
print(soup.p)
print(soup.a)
print(soup.a.string)
通过soup对象.标签[属性] 或者soup对象.标签.attars[属性] 获取属性的值
print(soup.p['name'])
print(soup.p['class'])
print(soup.p.attrs['name'])
print(soup.p.attrs['class'])
获取兄弟节点
找soup对象.p标签.next_siblings找的是第一个p标签的下面的兄弟节点
print(soup.p.next_siblings)
print(list(soup.p.next_siblings))
soup对象.p标签.previous_siblings找的是第一个p标签的上面的兄弟节点
print(soup.p.previous_siblings)
print(list(soup.p.previous_siblings))
子节点
print(soup.body)
print(list(soup.body.children))
子孙节点 descendants
print('------------------------')
print(list(soup.body.children))
print('------------------------')
print(list(soup.body.descendants))
获取第二个p标签中的a标签的内容
print(list(list(soup.p.next_siblings)[1].children)) print(list(list(soup.p.next_siblings)[1].a))
父节点, 祖先节点
print(soup.a)
print('------------------------')
print(soup.a.parent)
print('------------------------')
print(list(soup.a.parents))
prettify将页面结构补充完整,且解析\n这一类的标签
print(soup.prettify())
网友评论