Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python помогите у меня экзамен

Александр Хорешко Ученик (92), открыт 2 дня назад
Выполните парсинг сайта Marvel. Соберите следующую информацию о героях Marvel: • ■ name, • ■ link, • ■ universe, • ■ other aliases, • ■ education, • ■ place of origin, • ■ identity, • ■ known relatives.
1 ответ
Динара Тагирова Ученик (72) 2 дня назад
import requests
from bs4 import BeautifulSoup

# URL страницы с героями Marvel (например, Wiki или другой источник)
url = "https://marvel.fandom.com/wiki/Category:Characters"

response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

heroes_data = []

# Поиск всех ссылок на героев (это может варьироваться в зависимости от структуры сайта)
for link in soup.select('.category-page__member-link'):
hero_name = link.text
hero_link = link['href']

# Запрос на страницу героя
hero_response = requests.get(hero_link)
hero_soup = BeautifulSoup(hero_response.text, 'html.parser')

# Собираем нужные данные (это может варьироваться в зависимости от структуры страницы героя)
universe = hero_soup.select_one("tr:contains('Universe') + tr").text.strip() if hero_soup.select_one("tr:contains('Universe') + tr") else 'N/A'
other_aliases = hero_soup.select_one("tr:contains('Other aliases') + tr").text.strip() if hero_soup.select_one("tr:contains('Other aliases') + tr") else 'N/A'
education = hero_soup.select_one("tr:contains('Education') + tr").text.strip() if hero_soup.select_one("tr:contains('Education') + tr") else 'N/A'
place_of_origin = hero_soup.select_one("tr:contains('Place of origin') + tr").text.strip() if hero_soup.select_one("tr:contains('Place of origin') + tr") else 'N/A'
identity = hero_soup.select_one("tr:contains('Identity') + tr").text.strip() if hero_soup.select_one("tr:contains('Identity') + tr") else 'N/A'
known_relatives = hero_soup.select_one("tr:contains('Known relatives') + tr").text.strip() if hero_soup.select_one("tr:contains('Known relatives') + tr") else 'N/A'

heroes_data.append({
"name": hero_name,
"link": hero_link,
"universe": universe,
"other_aliases": other_aliases,
"education": education,
"place_of_origin": place_of_origin,
"identity": identity,
"known_relatives": known_relatives,
})

# Вывод данных о героях
for hero in heroes_data:
print(hero)
Похожие вопросы