使用 bs4 错误从 div 获取所有标题标签

Getting all the title tags from a div using bs4 error

我正在尝试使用 bs4 从页面中的所有项目中获取标题标签,然后打印出所有标题。如果我做 print(soup.find("a", attrs={"class": "detLink"})["title"]) 我只获得了其中一个的称号。如果我将 "select" 切换到 findAll 或 find_all,我会收到一条错误消息:

 print(soup.findAll("a", attrs={"class": "detLink"})["title"])
 TypeError: list indices must be integers or slices, not str

这是我的代码:

def test():
    url_to_scrape = "https://test.com"
    r = requests.get(url_to_scrape)
    soup = BeautifulSoup(r.text, "html5lib")
    print(soup.select("a", attrs={"class": "detLink"})["title"])

test()

如何获取所有项目的标题?

请尝试:

def test():
    url_to_scrape = "https://test.com"
    r = requests.get(url_to_scrape)
    soup = BeautifulSoup(r.text, "html5lib")
    titles = [div["title"] 
              for div in soup.find_all("a", attrs={"class": "detLink"})]
    print(titles)

test()

有效地使用标题的列表理解。