我正在尝试获得介于两堂课之间的头条新闻。标题围绕h2标签包裹。标题在标签之后。

from bs4 import BeautifulSoup
import requests
r = requests.get("https://www.dailypost.ng/hot-news")
soup = BeautifulSoup(r.content, "html.parser")
mydivs = soup.findAll("span", {"class": "mvp-cd-date left relative"})
mytags = mydivs.findNext('h2')
for tag in mytags:
    print(tag.text.strip())

最佳答案

您必须遍历mydivs才能使用findNext()

mydivs是Web元素的列表。 findNext仅适用于单个Web元素。您必须遍历div并在每个div上运行findNext

只需添加此行

for div in mydivs:


放在前面

mytags = div.findNext('h2')


这是您的工作程序的完整代码:

from bs4 import BeautifulSoup
import requests
r = requests.get("https://www.dailypost.ng/hot-news")
soup = BeautifulSoup(r.content, "html.parser")
mydivs = soup.findAll("span", {"class": "mvp-cd-date left relative"})
for div in mydivs:
    mytags = div.findNext('h2')
    for tag in mytags:
        print(tag.strip())

关于python - 我如何获得下一个标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59548220/

10-09 17:54