我正在尝试获得介于两堂课之间的头条新闻。标题围绕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/