Как правильно парсить страницу с помощью BeautifulSoup?
Хочу спарсить страницу новостей сайта, а именно: время публикации, название новости, ссылка на новость. Но, вместо того, чтобы выводить все новости страницы выводит только 1 пункт.
import asyncio
import aiohttp
from bs4 import BeautifulSoup as BS
BASE_URL = "https://nubip.edu.ua/"
async def main():
async with aiohttp.ClientSession() as session:
async with session.get(BASE_URL) as response:
r = await aiohttp.StreamReader.read(response.content)
soup = BS(r,"html.parser")
items = soup.find_all("div",{"class": "block"})
for item in items:
time = soup.find("p", {"class": "datetime"})
span = soup.find("span", {"class": "b-selection-em"})
print(time)
print(span)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Вывод
<p class="datetime"><span>5 лютого 2023 року</span></p>
<span class="b-selection-em">НУБіП піднявся в міжнародному рейтинзі WEBOMETRICS і посів четверте місце в Україні!</span>
<p class="datetime"><span>5 лютого 2023 року</span></p>
<span class="b-selection-em">НУБіП піднявся в міжнародному рейтинзі WEBOMETRICS і посів четверте місце в Україні!</span>
<p class="datetime"><span>5 лютого 2023 року</span></p>
<span class="b-selection-em">НУБіП піднявся в міжнародному рейтинзі WEBOMETRICS і посів четверте місце в Україні!</span>
Источник: Stack Overflow на русском