Python BeautifulSoup TypeError: find() takes no keyword arguments

Python BeautifulSoup TypeError: find() takes no keyword arguments

我有关注

li class = 'EntityList-item EntityList-item--Regular EntityList-item--n1 bp-radix__faux-anchor'

我正在尝试导出所有 li classes,但 n1 部分正在更改为 n2,n3 ... n100 尝试这样做:

url = 'https://www.xxxx.com' # just a random website
result = requests.get(url).text
doc = BeautifulSoup(result, 'html.parser')    
doc


x = 1
for add in doc:
    add.find('li', class_ = f'EntityList-item EntityList-item--Regular EntityList-item--n{x} bp-radix__faux-anchor')
    x += 1
    print(add)

但我收到错误消息: TypeError: find() 没有关键字参数

任何关于如何循环上述内容的建议class,以导出所有元素,直到 x 达到 100。

你调用的是内置函数 find 而不是 soup。 你需要做的:

soup.find('li', class_ = f'EntityList-item EntityList-item--Regular EntityList-item--n{x} bp-radix__faux-anchor')

要全部找到它们,请尝试使用不带循环的 findAll:

soup.findAll('li', class_ = f'EntityList-item EntityList-item--Regular EntityList-item--n{x} bp-radix__faux-anchor')

我发现了你的问题:

url = 'https://www.xxxx.com' # just a random website
result = requests.get(url).text
doc = BeautifulSoup(result, 'html.parser')    
doc

for i in range(101):
    print(soup.find('li', class_ = f'EntityList-item EntityList-item--Regular EntityList-item--n{i} bp-radix__faux-anchor'))