BeautifulSoup解析网页其实是将网页个标签及内容存放在一个树结构中,每一个标签是一个结点,字符串自身是一个结点没有子节点,标签的属性会是它的子节点。soup.prettify()能够将网页代码以一种更优美的结构展示出来。html
经常使用到须要掌握的内容有以下这些:python
soup.title#获取名为title的标签的内容 soup.tag.name #获取标签的名字 soup.tag.string #获取标签的文本内容 soup.tag #直接访问标签内容 soup.tag.['attribute'] #获取标签的属性 如class,id等等 soup.find('a') #找到第一个符合条件的内容 soup.find_all('a','link3') #找到全部符合条件的内容,能够找标签,也能够加上属性来筛选,也能够只写属性,不写标签,如soup.find(id='link3') soup.get_text() #用于获取全部文字内容 tag.attrs #获取标签的属性,有的标签有多值属性 tag.string.replace_with('') #能够将字符串内容用参数替换 tag.contents #能够将子节点以列表的方式输出 tag.children #能够对子节点进行循环 for child in tag.children: print(child) #.contents和.children属性仅包含tag的直接子节点,.descendants则能够对tag全部子孙结点进行递归循环 #.strings若是tag中有多个字符串,能够用.strings来循环获取 #.stripped_strings能够将字符串的首尾字符串中间的空符去掉 #.parent能够获取父节点 #.next_sibling和.previous_sibling能够获取元素的下一个或前一个兄弟结点 #Tag,NavigableString,BeautifulSoup,comment html和xml中的四大类
更多详细内容可查询beautifulsoup文档https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ ,http://beautifulsoup.readthedocs.io/zh_CN/latest/,分别为4.2和4.4的文档code