Python BeautifulSoup find方法找不到,返回空列表

前言

写爬虫时用BeautifulSoup的find_all方法寻找标签时,无论怎么取都返回空列表。最开始以为自己写错标签跟属性了,检查了好几遍都没有问题。最后发现相关的标签是动态加载的,这样的find方法是找不到的。

具体原因

我想找的是a标签:

代码如下

is_sold_out = soup.find_all(name='a', attrs={'class': 'cart-button floating-button soldout'})
复制代码

但是我们在开发者工具中搜索"cart-button floating-button soldout",发现了如下代码。没错,我们发现了script type="text/template"的标签。也就是说这是一段模版代码,html会动态加载导致BeautifulSoup无法找到。

解决方法

替代方法就是通过寻找其他静态元素。或者应该也有能够取到动态元素的库,看自己的喜好了。

总结

当使用find_all方法找不到元素时,有可能是各种动态加载导致的。这时候不妨试试寻找其他元素来替代。

分类:
后端
标签: