BeautifulSoup是Python包里最有名的HTML parser分解工具之一。简单易用安装:pip install beautifulsoup4注意大小写,而且不要安装BeautifulSoup,因为BeautifulSoup代表3.0,已经停止更新。常用语法参考我之前的文章:BeautifulSoup :一些常用功能的使用和测试# 创建实例soup = BeautifulSoup(html, ‘html5lib’)选择器根据不同的网页,选择器的使用会很不同:绝大部分下使用CSS选择器select()就足够了如果按照标签属性名查找,而属性名中有-等特殊字符,那么就只能使用find()选择器了。# 最佳选择器: CSS选择器(返回tag list)results = soup.select(‘div[class*=hello_world] ~ div’)for tag in results: print(tag.string) #print the tag’s html string # print(tag.get_text()) #print its inner text#单TAG精确选择器:返回单个tag. tag = soup.find(‘div’, attrs={‘class’: ‘detail-block’})print(tag.get_text())# 多Tag精确选择器: 返回的是text,不是tagresults = soup.find_all(‘div’, attrs={‘class’: ‘detail-block’})# 多class选择器(标签含有多个Class),重点是"class*=“results = soup.select(‘div[class*=hello_world] ~ div’)获取值tag = soup.find(‘a’)# 只获取标签的文本内容text = tag.get_text()# 获取标签的全部内容(如<a href=‘sdfj’> asdfa</a>)s = tag.string# 获取标签的属性link = tag[‘href’]修改值参考:Beautiful Soup(四)–修改文档树tag = soup.find(‘a’, attrs={‘class’: ‘detail-block’})#修改属性tag[‘href’] = ‘https://google.com’# 修改内容 <tag>..</tag>中间的内容tag.string = ‘New Content’# 删除属性del tag[‘class’]对象类型在我们使用选择器搜索各类tag标签时,BeautifulSoup会根据使用的函数而返回不同类型的变量。而不同的变量的使用方法也需要注意。Tag类型(<class ‘bs4.element.Tag’>):tag.stringtag.get_text()可遍历字符串类型(bs4.element.NavigableString):Comment类型(<class ‘bs4.element.Comment’>):增删改标签参考:使用BeautifulSoup改变网页内容# 修改标签内容tag = soup.find(’title’)tag.string = ‘New Title’