beautifulsoup部分笔记(随时可能有更新)

来源:互联网 发布:英汉词典软件下载 编辑:程序博客网 时间:2024/06/06 03:10
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中
0 0
原创粉丝点击