要使早期版本的Beautiful Soup代码与最新版本兼容,可以在导入语句中进行以下更改:
早期版本
from BeautifulSoup import BeautifulSoup
变为
最新版本
from bs4 import BeautifulSoup
如果你遇到ImportError: No module named BeautifulSoup
,这意味着你试图运行Beautiful Soup 3的代码,但你只安装了Beautiful Soup 4。类似地,如果你遇到ImportError: No module named bs4
,则是因为你试图运行Beautiful Soup 4的代码,但你只安装了Beautiful Soup 3。
Beautiful Soup 3使用了Python的SGMLParser模块,该模块已在Python 3.0中移除。Beautiful Soup 4默认使用html.parser,但你也可以使用lxml或html5lib。
尽管BS4在很大程度上与BS3向后兼容,但其大部分方法已经被弃用并且为了遵守PEP 8规范而改名。
以下是一些示例:
早期版本的方法 |
最新版本的方法 |
replaceWith |
replace_with |
findAll |
find_all |
findNext |
find_next |
findParent |
find_parent |
findParents |
find_parents |
findPrevious |
find_previous |
getText |
get_text |
nextSibling |
next_sibling |
previousSibling |
previous_sibling |