Как выводить полученную после парсинга информацию в красивом виде? Python
Как изменить вывод информации, что записывается в info, чтобы полученная информация выводилась в столбик, например?
def getcontent(html):
soup = BS(html, 'html.parser')
items = soup.find_all('div', class_='account-row')
accinfo = soup.find_all('div', class_='account-steaminfo-row')
faccinfo = soup.find_all('div', class_='account-faceit-stats-single')
for item in items:
info.append(
{
'name': item.find('div', class_='account-steam-name').get_text(strip=True),
'faceitname': item.find('div', class_='account-faceit-title').find('span').get_text(),
'link': item.find('div', class_='account-steam-userpic').find("a").get("href"),
'avatar': item.find('div', class_='account-steam-userpic').find('img').get("src"),
'trust': item.find('div', class_='account-steam-trust').get("title"),
'registerdate': accinfo[1].get_text(strip=False).replace('', ''),
'firstcs': accinfo[2].get_text(strip=False).replace('', ''),
'cshours': accinfo[3].get_text(strip=False).replace('', ''),
'lastweekhours': accinfo[4].get_text(strip=False).replace('', ''),
'achhack': accinfo[5].get_text(strip=False).replace('', ''),
'matches': faccinfo[0].get_text(strip=False).replace('', ''),
'elo': faccinfo[1].get_text(strip=False).replace('', ''),
'kd': faccinfo[2].get_text(strip=False).replace('', '')
}
)
return info
def pars():
html = gethtml(ffurl)
if html.status_code == 200:
print(getcontent(html.text))
else:
print("-")
Вывод:
[{'name': 'mouse.', 'faceitname': 'ya_lublu_sir', 'link': 'https://steamcommunity.com/profiles/76561199093445177', 'avatar': 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/87/8795cc1582c0949615b54bdac3c3c1f7267ec089_full.jpg', 'trust': 'Уровень доверия = 0%', 'registerdate': 'Аккаунт создан: 25.09.2020', 'firstcs': 'Играет в CS:GO с: 25.09.2020', 'cshours': 'Всего часов в CS:GO: 1080.2', 'lastweekhours': 'Часов CS:GO за 2 недели: 6.3', 'achhack': 'Достижения CS:GO: Не взломаны', 'matches': 'Матчей: 36', 'elo': 'ELO: 790', 'kd': 'K/D: 1.32'}]
Ответы (2 шт):
Автор решения: Namerek
→ Ссылка
from pprint import pprint
a = [{'name': 'mouse.', 'faceitname': 'ya_lublu_sir', 'link': 'https://steamcommunity.com/profiles/76561199093445177', 'avatar': 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/87/8795cc1582c0949615b54bdac3c3c1f7267ec089_full.jpg', 'trust': 'Уровень доверия = 0%', 'registerdate': 'Аккаунт создан: 25.09.2020', 'firstcs': 'Играет в CS:GO с: 25.09.2020', 'cshours': 'Всего часов в CS:GO: 1080.2', 'lastweekhours': 'Часов CS:GO за 2 недели: 6.3', 'achhack': 'Достижения CS:GO: Не взломаны', 'matches': 'Матчей: 36', 'elo': 'ELO: 790', 'kd': 'K/D: 1.32'}]
pprint(a, sort_dicts=False)
output:
[{'name': 'mouse.',
'faceitname': 'ya_lublu_sir',
'link': 'https://steamcommunity.com/profiles/76561199093445177',
'avatar': 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/87/8795cc1582c0949615b54bdac3c3c1f7267ec089_full.jpg',
'trust': 'Уровень доверия = 0%',
'registerdate': 'Аккаунт создан: 25.09.2020',
'firstcs': 'Играет в CS:GO с: 25.09.2020',
'cshours': 'Всего часов в CS:GO: 1080.2',
'lastweekhours': 'Часов CS:GO за 2 недели: 6.3',
'achhack': 'Достижения CS:GO: Не взломаны',
'matches': 'Матчей: 36',
'elo': 'ELO: 790',
'kd': 'K/D: 1.32'}]
Или
a = [{'name': 'mouse.', 'faceitname': 'ya_lublu_sir', 'link': 'https://steamcommunity.com/profiles/76561199093445177',
'avatar': 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/87/8795cc1582c0949615b54bdac3c3c1f7267ec089_full.jpg',
'trust': 'Уровень доверия = 0%', 'registerdate': 'Аккаунт создан: 25.09.2020',
'firstcs': 'Играет в CS:GO с: 25.09.2020', 'cshours': 'Всего часов в CS:GO: 1080.2',
'lastweekhours': 'Часов CS:GO за 2 недели: 6.3', 'achhack': 'Достижения CS:GO: Не взломаны',
'matches': 'Матчей: 36', 'elo': 'ELO: 790', 'kd': 'K/D: 1.32'}]
print(*[f'{k} => {v}' for elem in a for k, v in elem.items()], sep='\n')
output
name => mouse.
faceitname => ya_lublu_sir
link => https://steamcommunity.com/profiles/76561199093445177
avatar => https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/87/8795cc1582c0949615b54bdac3c3c1f7267ec089_full.jpg
trust => Уровень доверия = 0%
registerdate => Аккаунт создан: 25.09.2020
firstcs => Играет в CS:GO с: 25.09.2020
cshours => Всего часов в CS:GO: 1080.2
lastweekhours => Часов CS:GO за 2 недели: 6.3
achhack => Достижения CS:GO: Не взломаны
matches => Матчей: 36
elo => ELO: 790
kd => K/D: 1.32
Автор решения: Дмитрий Игоревич
→ Ссылка
Мне лично всегда больше нравилось как форматирует json, получше чем pprint. Дело вкуса.
from json import dumps
info = [{'name': 'mouse.', 'faceitname': 'ya_lublu_sir', 'link': 'https://steamcommunity.com/profiles/76561199093445177', 'avatar': 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/87/8795cc1582c0949615b54bdac3c3c1f7267ec089_full.jpg', 'trust': 'Уровень доверия = 0%', 'registerdate': 'Аккаунт создан: 25.09.2020', 'firstcs': 'Играет в CS:GO с: 25.09.2020', 'cshours': 'Всего часов в CS:GO: 1080.2', 'lastweekhours': 'Часов CS:GO за 2 недели: 6.3', 'achhack': 'Достижения CS:GO: Не взломаны', 'matches': 'Матчей: 36', 'elo': 'ELO: 790', 'kd': 'K/D: 1.32'}]
print(dumps(info, ensure_ascii=False, indent=2))
Вывод такой:
[
{
"name": "mouse.",
"faceitname": "ya_lublu_sir",
"link": "https://steamcommunity.com/profiles/76561199093445177",
"avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/87/8795cc1582c0949615b54bdac3c3c1f7267ec089_full.jpg",
"trust": "Уровень доверия = 0%",
"registerdate": "Аккаунт создан: 25.09.2020",
"firstcs": "Играет в CS:GO с: 25.09.2020",
"cshours": "Всего часов в CS:GO: 1080.2",
"lastweekhours": "Часов CS:GO за 2 недели: 6.3",
"achhack": "Достижения CS:GO: Не взломаны",
"matches": "Матчей: 36",
"elo": "ELO: 790",
"kd": "K/D: 1.32"
}
]