Python BeautifulSoup的问题查找所有

Python BeautifulSoup的问题查找所有,python,list,beautifulsoup,Python,List,Beautifulsoup,我需要从一个站点html中检索一些ID,如果我创建一些变量来存储它们,这不是一项困难的工作,但是我想使用列表来更容易地查找和使用它们 当使用以下行时,终端返回“TypeError:列表索引必须是整数或片,而不是str”: ids = site.find_all('p', class_="frase fr")['id'] 我的意思是,使用soup.find_对我来说都很好,不过如果我最后用方括号来指定它应该在哪里收集信息,它就不起作用了。问题就在这里,我如何解决它?find\

我需要从一个站点html中检索一些ID,如果我创建一些变量来存储它们,这不是一项困难的工作,但是我想使用列表来更容易地查找和使用它们

当使用以下行时,终端返回“TypeError:列表索引必须是整数或片,而不是str”:

ids = site.find_all('p', class_="frase fr")['id']

我的意思是,使用soup.find_对我来说都很好,不过如果我最后用方括号来指定它应该在哪里收集信息,它就不起作用了。问题就在这里,我如何解决它?

find\u all方法返回一个元素列表,因此如果您只想获得每个元素的ID,您必须迭代每个元素并提取所需的信息

改用这个:

ids = [p.get('id') for p in site.find_all('p', class_="frase fr")]
这将为您提供在标记中找到的每个ID的列表,包括
None
个ID

您还可以使用以下方法过滤出

ids = [p.get('id') for p in site.find_all('p', class_="frase fr") if p.get('id')]

请分享您已经尝试过的完整代码“从bs4导入BeautifulSoup导入请求导入wget导入webbrowser site=requests.get('site=BeautifulSoup(site,'html.parser')ids=site.find_all('p',class=“frase fr”)['id']print(ids)``到目前为止,这个项目是从今天开始的。