beautifulsoup4使用
从文档中获取为文字内容 soup.get_text()
获取文档树 soup.tag名 取点只能获取第一个tag
.contents将tag子节点以列表形式输出
.child对tag的子节点进行循环
.descendants对所有子孙节点进行递归循环
如果tag中包含多个子串,用.strings进行循环 .stripped_strings可以移除多余空白内容
.parents递归得到所有父辈节点
.next_sibling 查询兄弟节点 同级节点中第一个 对当前节点的兄弟节点进行迭代输出
.previous_sibling 同级节点中后一个
正则表达式
find_all()搜索当前tag的所有子节点,并判断是否符合过滤器的条件
keyword参数
find_all()方法的attrs参数定义一个字典参数搜索包含特殊属性的tag
css搜索
tag的 class 属性是 多值属性 .按照CSS类名搜索tag时,可以分别搜索tag中的每个CSS类名:
css_soup = BeautifulSoup('<p class="body strikeout"></p>')
css_soup.find_all("p", class_="strikeout")
# [<p class="body strikeout"></p>]
css_soup.find_all("p", class_="body")
# [<p class="body strikeout"></p>]
string参数
与其他参数混合使用找到与string值相符的tag
soup.find_all("a", string="Elsie")
# [<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>]
tag调用find_all时,如果只想搜索直接子节点可使用参数recursive=False
soup.html.find_all("title", recursive=False)
# []
find_previous_siblings() 方法返回所有符合条件的前面的兄弟节点,
find_previous_sibling() 方法返回第一个符合条件的前面的兄弟节点:
找到某个tag标签下的直接子标签 :
soup.select("head > title")
# [<title>The Dormouse's story</title>]
tag.append 向tag中添加内容
insert_before()方法在当前tag文本节点前插入内容
insert_after()在当前tag后插入内容
输出
prettify()将文档格式化后以Unicode编码输出
str() 方法返回UTF-8编码的字符串
get_text()得到tag中所有文本内容包括子孙tag中
从文档中获取为文字内容 soup.get_text()
获取文档树 soup.tag名 取点只能获取第一个tag
.contents将tag子节点以列表形式输出
.child对tag的子节点进行循环
.descendants对所有子孙节点进行递归循环
如果tag中包含多个子串,用.strings进行循环 .stripped_strings可以移除多余空白内容
.parents递归得到所有父辈节点
.next_sibling 查询兄弟节点 同级节点中第一个 对当前节点的兄弟节点进行迭代输出
.previous_sibling 同级节点中后一个
正则表达式
find_all()搜索当前tag的所有子节点,并判断是否符合过滤器的条件
keyword参数
find_all()方法的attrs参数定义一个字典参数搜索包含特殊属性的tag
css搜索
tag的 class 属性是 多值属性 .按照CSS类名搜索tag时,可以分别搜索tag中的每个CSS类名:
css_soup = BeautifulSoup('<p class="body strikeout"></p>')
css_soup.find_all("p", class_="strikeout")
# [<p class="body strikeout"></p>]
css_soup.find_all("p", class_="body")
# [<p class="body strikeout"></p>]
string参数
与其他参数混合使用找到与string值相符的tag
soup.find_all("a", string="Elsie")
# [<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>]
tag调用find_all时,如果只想搜索直接子节点可使用参数recursive=False
soup.html.find_all("title", recursive=False)
# []
find_previous_siblings() 方法返回所有符合条件的前面的兄弟节点,
find_previous_sibling() 方法返回第一个符合条件的前面的兄弟节点:
找到某个tag标签下的直接子标签 :
soup.select("head > title")
# [<title>The Dormouse's story</title>]
tag.append 向tag中添加内容
insert_before()方法在当前tag文本节点前插入内容
insert_after()在当前tag后插入内容
输出
prettify()将文档格式化后以Unicode编码输出
str() 方法返回UTF-8编码的字符串
get_text()得到tag中所有文本内容包括子孙tag中