BeautifulSoup findAll() 没有找到全部,无论我使用哪个解析器

BeautifulSoup findAll() not finding all, regardless of which parser I use

所以我通读了我能找到的关于 findAll() 不工作的所有问题,答案似乎总是与特定的 html 解析器有关。我有 运行 以下代码使用默认值 'html.parser' 以及 'lxml' 和 'html5lib' 但是当我应该找到 14.

时我只能找到一个实例
import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = 'https://robertsspaceindustries.com/pledge/ships'

uClient = uReq(my_url)

page_html = uClient.read()
uClient.close()

page_soup = soup(page_html, features = "lxml")

containers = page_soup.findAll("ul", {"class":"ships-listing"})
len(containers)   

我尝试张贴 HTML 代码的图片,但我没有足够的声誉。这是图像的 link (https://imgur.com/a/cOLO8GO)。

当您通过 urllib(或 requests HTTP 库)下载页面时,它会下载原始 HTML 源文件。

最初只有 class 名称 'ships-listing' 的单一标签,因为该标签随源页面一起提供。但是一旦向下滚动,页面会生成额外的 <ul class='ships-listing'>,这些元素是由 JavaScript.

生成的

因此,当您使用urllib下载页面时,下载的内容仅包含原始源页面(您可以通过浏览器中的查看源选项查看)。