Как убрать лишний текст при выводе результата парсинга?
Изучаю парсинг сайтов на Python. Столкнулся с проблемой. Решил спарсить данный сайт. Хочу собрать данные по типу "русское название", "место в топе" и так далее, но как только вывожу print получаю ответ по типу:
#1 Город, в котором меня нет.
Как убрать номер из названия, если они оба указаны в span?
А также проблема с объединением жанров. Их там несколько штук, но если использовать find_all не выходит вывести их текстом.
Вот код который у меня получился:
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
# options = webdriver.ChromeOptions()
# options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36')
# try:
# driver = webdriver.Chrome(
# executable_path='C:\\Users\\1\\Desktop\\python\\chromedriver\\chromedriver.exe',
# options=options)
# driver.get(url='https://online.animedia.tv/top-100-anime')
# sleep(20)
# with open('animetop.html', 'w', encoding='utf-8') as file:
# file.write(driver.page_source)
# except Exception as ex:
# print(ex)
# finally:
# driver.close()
# driver.quit()
with open('animetop.html', encoding='utf-8') as file:
src = file.read()
soup = BeautifulSoup(src, 'lxml')
anime = soup.find('div', class_='ads-list__item').find('div', class_='ads-list__item__thumb js-postload').find('a').get('href')
anime_link = 'https://online.animedia.tv' + soup.find('div', class_='ads-list__item').find('div', class_='ads-list__item__thumb js-postload').find('a').get('href')
russian_name = soup.find('div', class_='ads-list__item').find('a', class_='h3 ads-list__item__title').text
original_name = soup.find('div', class_='ads-list__item').find('div', class_='original-title').text
tags = soup.find('div', class_='ads-list__item').find('div', class_='genre-tags').find('a')
print(tags)
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
Например:
import requests
from bs4 import BeautifulSoup
src = requests.get('https://online.animedia.tv/top-100-anime')
soup = BeautifulSoup(src.text, 'lxml')
anime = soup.select_one('.mains-container').select('.ads-list__item')
for x in anime:
n, russian_name = x.select_one('.ads-list__item__title').stripped_strings
original_name = x.select_one('.original-title').text
_, *tags = x.select_one('.genre-tags').stripped_strings
# print(n)
# print(n[1:])
print(russian_name)
print(original_name)
print(', '.join(tags))
# print(*tags, sep=' ')
print('-'*40)
Город, в котором меня нет
Boku dake ga Inai Machi
Приключения, Психология, Сёнэн
----------------------------------------
Ванпанчмен
One-Punch Man
Боевые искусства, Комедия, Повседневность, Приключения, Фантастика
----------------------------------------
...
Врата: Там бьются наши воины
Gate: Jieitai Kanochi nite, Kaku Tatakaeri
Комедия, Мистика, Приключения, Фэнтези
----------------------------------------
Призрак в доспехах: Синдром одиночки
Ghost in the Shell: Stand Alone Complex
Детектив, Киберпанк, Фантастика
----------------------------------------