1

这是我的代码:我正在传递存储在列表中的 URL,并且对于每个 URL,我使用“html.parser”解析它。我正在寻找“livefyre”这个词

for page in links:
    req = requests.get(page, headers=hdr)
    soup = BeautifulSoup(req.text, "html.parser")
    for link in soup.find('div', attrs={"id" : "livefyre-comments"}):
        print(len(link.get_text()))

这仅输出与特定“id”匹配的 div 元素:“livefyre-comments”。我想在 HTML 页面上的任何位置搜索所有/任何出现的“livefyre”。请帮忙。

4

1 回答 1

0

您可以使用tag[attr*='val']CSS 选择器,它检查是否是附加到tagsval属性的值的子字符串。这将匹配以下元素,例如:attrtag

  • <tag attr="value">
  • <tag attr="values">
  • <tag attr="valuables">
  • <tag attr="invalid">

因此,使用这个 CSS 选择器,您可以使用以下bs4.BeautifulSoup.select()方法修改代码:

for page in links:
    req = requests.get(page, headers=hdr)
    soup = BeautifulSoup(req.text, "html.parser")
    for elem in soup.select("div[id*='livefyre']"):
        print(len(elem.getText())
于 2021-04-20T15:16:54.207 回答