再使用Beautiful Soup 4时遇到了一些问题,找到了解决方法,通过本博文将遇到的问题和解决方法记录下来,方便回顾也希望能帮助大家解决类似问题。
1. 遇到“Some characters could not be decoded, and were replaced with REPLACEMENT CHARACTER.”警告
遇到这个错误的原因是“文档包含以完全不同的编码编写的文本”,这时候需要待解析文本的指定编码方式,通常可以在网页源码中找到网页的编码方式,就像下图:
接着,只需要在原来调用beautiful soup的语句中指定编码方式即可:
soup = BeautifulSoup(html, "html.parser",from_encoding="uft-8")
参考博文:https://www.cnblogs.com/HANYI7399/p/6080070.html
2. 需要获取相同标签的非第一个元素
利用bs4获取标签下的子元素内容时可以利用“本元素.子元素标签”的方式访问,但是这样的访问方式默认是返回对应标签的第一个元素的,这时候可以利用find_all方法达到这个效果。
例子:
HTML源码段为: