Как получить информацию по каждой из полученых ссылок BeautifullSoup?

Изучая BeautifullSoup4 решил спарсить дививенды по каждой бумаге на сайте Доход.ру

Получилось спарсить все ссылки в переменную "item" в первом блоке кода но не получаеться к каждой из получених ссылок пременить метод из второго блока кода.

Первый блок:

import requests
from bs4 import BeautifulSoup

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"
}


url = "https://www.dohod.ru/ik/analytics/dividend"
req = requests.get(url, headers=headers)
src = req.text

soup = BeautifulSoup(src, "lxml")

first_page_urls = soup.find("tbody").find_all("a") 

for item in first_page_urls:
    item = "https://www.dohod.ru/" + item.get("href")
    print(item) <<< тут список всех ссылок.

Второй блок:

for div_name in item:

    info_block = soup.find("div", class_="main_content")
    div_name = info_block.find("h1")
    print(div_name) <<< тут назнавие эмитента.

Как заставить второй блок кода перебирать ссылки по очереди из переменной "item"?


Ответы (1 шт):

Автор решения: CrazyElf

Примерно так. Собираем ссылки в список, потом проходим по списку. Функционал получения и парсинга страницы через BS я вынес в отдельную функцию, потому что это код используется несколько раз. Ссылки были неправильные, исправил:

import requests
from bs4 import BeautifulSoup

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"
}

def soup_get(url):
    req = requests.get(url, headers=headers)
    src = req.content
    soup = BeautifulSoup(src, "lxml")
    return soup

main_url = "https://www.dohod.ru/ik/analytics/dividend"
soup = soup_get(main_url)
first_page_urls = soup.find("tbody").find_all("a") 

items = []
for item in first_page_urls:
    item = "https://www.dohod.ru/" + item.get("href")
    print(item)
    items.append(item)

for page_url in items:
    soup = soup_get(page_url)
    info_block = soup.find("div", class_="main_content")
    div_name = info_block.find("h1")
    print(div_name)
→ Ссылка