Задать вопрос
@e56c00849db

Почему вывод частично смещается?

Мне нужен вывод:
ID:
Имя:
Профиль:
Аватар:

Но при выполнении скрипта, переменная "Аватар:" частично смещается вниз:
ID: 336497468
Имя: Сергей Коннов
Профиль: https://vk.com/id336497468

Аватар: https://sun1-26.userapi.com/s/v1/if1/XmgY6LHCJB0uW51ESlxOI-OlRjNz1UgiTykW4YLJ9t6XhRyVLpGESH-Umm16ln-2J2QX5_8S.jpg?size=200x200&quality=96&crop=2,1,393,393&ava=1

или вверх:
Аватар: https://sun1-29.userapi.com/s/v1/if1/Lo8c4832dXfFX4sArQMQp516wJD3xsopK3dBYwQQPSM7gwDUuIcTjeHdq3QOWvlAzmhtOjQ7.jpg?size=200x200&quality=96&crop=561,3,1436,1436&ava=1
ID: 322777379
Имя: Анна Пекарюк
Профиль: https://vk.com/id322777379


В результате также имеется нужный мне формат вывода. Но появляются такие вот ошибки.

Как это можно исправить?

Код:
import time
import requests
from bs4 import BeautifulSoup
from threading import Thread

vk_id = '231962842'
url = f'https://onli-vk.ru/pivatfriends.php?id={vk_id}'
content = requests.get(url)
soup = BeautifulSoup(content.text, 'html.parser')
accounts = soup.find_all('div', class_="post_info")
photos = soup.find_all('div', id="change")

class Thread1(Thread):
	def run(self):
		for blocks in accounts:
			time.sleep(0.2)
			href = blocks.find('a')
			id = "ID: {}".format(href.get("href").replace('https://vk.com/id',''))
			name = "Имя: {}".format(href.text)
			profile = "Профиль: {}".format(href.get("href"))
			print(f'\n{id}\n{name}\n{profile}')

class Thread2(Thread):
	def run(self):
		for avatars in photos:
			time.sleep(0.2)
			src = avatars.find('img')
			avatar = "Аватар: {}".format(src.get("src"))
			print(f'\n{avatar}')

t1 = Thread1()
t1.start()
t2 = Thread2()
t2.start()
  • Вопрос задан
  • 79 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@FedorWK
Программа выполняется в два потока. Следовательно принт Аватара может произойти как до, так и после принтов в первом потоке. И '\n' в print(f'\n{avatar}') не нужен. Предыдущий принт уже добавил символ переноса.
Самое банальное решение - убрать многопоточность вообще (она тут не нужна):
vk_id = '231962842'
url = f'https://onli-vk.ru/pivatfriends.php?id={vk_id}'
content = requests.get(url)
soup = BeautifulSoup(content.text, 'html.parser')
accounts = soup.find_all('div', class_="post_info")
photos = soup.find_all('div', id="change")

for blocks in accounts:
      href = blocks.find('a')
      id = "ID: {}".format(href.get("href").replace('https://vk.com/id',''))
      name = "Имя: {}".format(href.text)
      profile = "Профиль: {}".format(href.get("href"))
      print(f'\n{id}\n{name}\n{profile}')

for avatars in photos:
      src = avatars.find('img')
      avatar = "Аватар: {}".format(src.get("src"))
      print(f'{avatar}')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы