Ответы пользователя по тегу Python
  • Красивое оформление при парсинге?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Попробуйте метод strip():
    serveronline = soup.find("div", "monitoring").text.strip()


    PS: Скорее всего так не получится, так как вы хитрите, выбирая всё сразу. Нужно брать "табличку" каждого сервера и парсить в цикле из неё данные. И тогда будет всё красиво, без ненужных пустых строк.
    Ответ написан
    7 комментариев
  • Python. Как залогинится на сайте и получить аргументы из url??

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    print(s.url)
    Ответ написан
    Комментировать
  • Приложение на Python?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Можно, но не нужно! Tkinter или PyQT(или PySide). Но в ближайшее время вы не создадите, если задаете такой вопрос.

    UDP: Начинающий верстальщик, учащий js задает вопрос про Python...
    Ответ написан
  • Нужно спарсить таблицу с сайта?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    import requests
    from bs4 import BeautifulSoup
    from lxml import html
    import csv
    
    headers = {'user-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0',
    			'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
    }
    
    url = 'https://opi.dfo.kz/p/ru/DfoObjects/objects/teaser-view/25720?RevisionId=0&ReportNodeId=2147483637&PluginId=6c2aa36248f44fd7ae888cb43817d49f&ReportId=61005620'
    
    response = requests.get(url,headers=headers)
    
    file = open('data.csv','w') # Открываем файл на запись. Можно было использовать контекстный менеджер, но так думаю проще.
    writer = csv.writer(file) # Передаем в функцию writer дескриптор открытого файла.
    
    soup = BeautifulSoup(response.text,"html.parser")
    
    rows = soup.find('table',class_='dsnode-table').find('tbody').find_all('tr') # Ищем в html тег 'table' с классом 'dsnode-table',
    # далее в найденом ищем тег 'tbody' и наконец ищем все теги 'tr'. Тег 'tr' в html это тег строки таблицы. В результате, в rows 
    # у нас окажутся все теги 'tr', тоесть все строки таблицы.
    
    for row in rows: # Проходимся по всем строкам. При каждой итерации, в row у нас будет следующая строка таблицы, вместе с html тегами.
    	columns = row.find_all('td') # Ищем в текущей строке таблици все теги 'td'. В html td - это тег ячейки.
    	data_list = [columns[0].text,columns[1].text,columns[2].text,columns[3].text,columns[4].text,columns[5].text,columns[6].text,columns[7].text,columns[8].text]
    	# Так как в каждой строке 9 ячеек, а элементы списка в большинстве ЯП нумеруюются с нуля, то мы можем обратится к конкретной ячейке
    	# текущей строки по индексу. Первая ячейка будет columns[0], а последняя, тоесть девятая - columns[8]. Создаем список 'data_list',
    	# и заносим в него все ячейки текущей строки. Но, так как в columns кроме текстовых данных также присутствуют html теги, мы обращаемся 
    	# к свойству .text, что-бы получить сам текст, без тегов.
    	writer.writerow(data_list) # Записываем текущую строку в csv файл. 
    	# Далее цикл продолжается, пока не достигнет конца таблицы(условно, так как все строки таблици мы уже получили, и они хранятся в 'rows')
    
    file.close() # Так как мы не используем контекстный менеджер with, обязательно закрываем открытый файл.

    Результат:
    5f31c1f7ca811013254566.png
    Ответ написан
    Комментировать
  • Как записывать экран при помощи Python?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Как захватить видео с экрана на python3?
    Работа с видео - запись рабочего стола при помощи ...
    Сколько искал, не смог найти
    Я просто скопировал ваш вопрос, и вставил в google:
    spoiler
    5f312d7617cf5282461801.png
    Ответ написан
    2 комментария
  • Как перечислить все строки из файла?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    with open("DATA.txt") as file:
    	lines = file.read().splitlines()
    
    for line in lines:
    	print(line)
    Ответ написан
    Комментировать
  • Как мне запарсить определённые классы {Python}?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Вот самый простой код, разбирайтесь:
    import requests
    from bs4 import BeautifulSoup
    
    response = requests.get("https://www.animag.ru/news")
    
    soup = BeautifulSoup(response.text,"html.parser")
    
    all_news = soup.find('section',id = 'block-views-articles-wall-block-1').find_all('div',class_='views-row')
    
    for new in all_news:
    	title = new.find('h3').a.text
    	description = new.find('div',class_='views-field views-field-nothing-5').text.strip()
    	image = new.find('img',class_='img-responsive').get('src')
    	dates = new.find('div',class_='col-md-5 col-xs-12').text
    	views = new.find('div',class_='col-md-4 col-xs-12').text
    
    	print(f'Заголовок: {title} \nОписание: {description} \nКартинка: {image} \nДата {dates} \nПросмотров: {views}')
    	print('*'*40)

    Результат:
    Заголовок: Новое OVA "Boku no Hero Academia" 
    Описание: 16 и 30 августа на японских спутниковых каналах выйдет бонусный эпизод "My Hero Academia". Эпизод носит название "Boku no Hero Academia: Ikinokore! Kesshi no Survival Kunren". 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/562758206.jpg?itok=qoea2QxG 
    Дата  авг 03, 2020 
    Просмотров:  26
    ****************************************
    Заголовок: Новые трейлер и постер мувика "Kimetsu no Yaiba: Mugen Train" 
    Описание: Представлены  новые трейлер и постер мувика "Kimetsu no Yaiba: Mugen Train". Премьера 16 октября. 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/1440896367.jpg?itok=k9qLT90h 
    Дата  авг 02, 2020 
    Просмотров:  137
    ****************************************
    Заголовок: Дата выхода мувика "Fate/Grand Order: Camelot -Wandering; Agateram" 
    Описание: "Fate/Grand Order: Camelot -Wandering; Agateram", первый мувик из дилогии "Fate/Grand Order", выйдет на экраны 5 декабря.
    Ранее планировалось выпустить его в мае. 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/863073178.jpg?itok=zuWMas5_ 
    Дата  авг 02, 2020 
    Просмотров:  108
    ****************************************
    Заголовок: Анонсирован третий сезон "Yuuki Yuuna wa Yuusha de Aru" 
    Описание: Вышел анонс третьего сезона "Yuuki Yuuna wa Yuusha de Aru", который выйдет под названием "Yuuki Yuuna wa Yuusha de Aru: Dai Mankai no Shou". 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/367416836.jpg?itok=ce2oEykH 
    Дата  авг 02, 2020 
    Просмотров:  63
    ****************************************
    Заголовок: "Tonikaku Kawaii" выйдет 3 октября 
    Описание: Названа дата премьеры романтической комедии "Tonikaku Kawaii", сериал стартует 3 октября.
    Выпускает аниме Seven Arcs. 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/1943112195.jpg?itok=u74rsoMT 
    Дата  авг 02, 2020 
    Просмотров:  56
    ****************************************
    Заголовок: Дата выхода "Nanatsu no Taizai: Fundo no Shinpan" 
    Описание: "Nanatsu no Taizai: Fundo no Shinpan", четвертый сезон "Nanatsu no Taizai", выйдет в январе 2021 года.
    Трансляция была перенесена из-за эпидемии. 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/1769628237.jpg?itok=n4vP0xNY 
    Дата  авг 02, 2020 
    Просмотров:  71
    ****************************************
    Заголовок: Анонс аниме по манге "Mashiro no Oto" 
    Описание: По манге "Mashiro no Oto" Маримо Рагава (Marimo Ragawa) выйдет аниме. Пока без подробностей.
    Премьера весной 2021 года, производством аниме займётся студия Shinei Animation. 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/1194794348.jpg?itok=LwQDdGGI 
    Дата  авг 01, 2020 
    Просмотров:  107
    ****************************************
    Заголовок: Netflix анонсировал аниме по игре "Splinter Cell" 
    Описание: Вышел анонс от сервиса Netflix об аниме-экранизации игры "Splinter Cell".
    Планируется выпустить 16-эпизодный сериал.
    Сценаристом и исполнительным продюсером заявлен Дерек Колстад, сценарист и... 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/1300066672.jpg?itok=zdEzF5d6 
    Дата  июл 31, 2020 
    Просмотров:  177
    ****************************************
    Заголовок: Немного подробностей "Dogeza de tanondemita" 
    Описание: Появились скупые новости о сериале "Dogeza de tanondemita".
    Во-первых, он будет короткометражным.
    Во-вторых, названа часть команды. Также представлен постер. 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/1534594593.jpg?itok=L_zSFwD5 
    Дата  июл 30, 2020 
    Просмотров:  147
    ****************************************
    Заголовок: Пополнение каста сериала "Magatsu Wahrheit: Zuerst" 
    Описание: Названы сейю, что присоединились  к касту сериала "Magatsu Wahrheit: Zuerst". 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/449125141.jpg?itok=Ybpk5SLJ 
    Дата  июл 29, 2020 
    Просмотров:  111
    ****************************************
    Заголовок: Анонс аниме по манге "Yakunara Mug Cup Mo" 
    Описание: Вышел анонс аниме по манге "Yakunara Mug Cup Mo".
    Выпустит аниме Nippon Animation. 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/11760665.jpg?itok=iYELktH1 
    Дата  июл 29, 2020 
    Просмотров:  156
    ****************************************
    Заголовок: Новый трейлер "Kurayukaba" 
    Описание: Сегодня был представлен новый кусок анимационного фильма "Kurayukaba".
    Начался второй этап сбора средств на краундфантинг-платформе. 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/1246923714.jpg?itok=C_g4RNen 
    Дата  июл 28, 2020 
    Просмотров:  145
    ****************************************
    Заголовок: Новый трейлер "Shikizakura" с музыкой из опенинга 
    Описание: Вышел трейлер НФ-сериала "Shikizakura", представляющий композицию "BELIEVE MYSELF" в исполнении Asaka, которая прозвучит в опенинге.
    Девушка исполняла песню в эндинге "ISLAND". 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/1579333846.jpg?itok=vxbAFAQ- 
    Дата  июл 28, 2020 
    Просмотров:  135
    ****************************************
    Заголовок: Анонс аниме по манге "Dogeza de Tanondemita" 
    Описание: Вышел анонс аниме по веб-манге"Dogeza de Tanondemita" Кадзуки Фунацу (Kazuki Funatsu).
    Опять, судя по всему, недохентай ночного блока.
    Пока без подробностей.
    Герой истории на коленях умоляет девушек... 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/1127721476.jpg?itok=do8yKGzc 
    Дата  июл 28, 2020 
    Просмотров:  256
    ****************************************
    Заголовок: Новая дата премьеры "Ochikobore Fruit Tart" 
    Описание: Представлен новый постер сериала "Ochikobore Fruit Tart". Также названа дата премьеры - октябрь. Изначально хотели выпустить сериал в июле. 
    Картинка: https://www.animag.ru/sites/default/files/styles/manual/public/cover/news/2020/753383095.jpg?itok=mSyf4crw 
    Дата  июл 27, 2020 
    Просмотров:  116
    ****************************************
    >>>
    Ответ написан
    Комментировать
  • Как сформулировать POST запрос?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    1) F12 -> Copy -> Copy as cURL
    2) https://curl.trillworks.com/ -> CTRL+V

    Обязательно к просмотру!
    Не выкладываете картинками то, что можно текстом!!! И желательно сразу давать url!
    Ответ написан
  • Как открыть файл .csv на чтение и дозапись?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    "r+"
    Простой пример:
    with open('file.csv','r+') as file:
    	
    	data = file.readlines()
    	print(data)
    
    	file.write("test\n")
    Ответ написан
  • Консоль закрывается сразу же. Что нужно делать?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    В строке
    bmi = float("{0:.2f}".format(weight / ((height / 100) * (height / 100)))
    не хватает в конце круглой скобки.
    В строках:
    weight = floot(input("What's your weight?: "))
    height = floot(input("And what's your heigh?: "))

    опечатка. floot заменить на float.
    Ответ написан
    1 комментарий
  • Как открывать ссылки через мое приложение (ПК) как в телеграме?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Как запустить мою программу при открытии ссылки в ... По ссылке вопрос по c#, но это значение не имеет, так как там в основном работа е реестром.
    PS: Telegram в теге лишний.
    Ответ написан
    Комментировать
  • Как получить название песни в python?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Так берите название песни оттуда, откуда достаёте url:
    import requests
    from bs4 import BeautifulSoup
    
    response = requests.get('https://mp3-fm.site/')
    soup = BeautifulSoup(response.text,"html.parser")
    playlist = soup.find('div',id='xx1').find_all('div',class_='song')
    
    for song in playlist:
    	title = song.find('div',class_='title').text.strip()
    	url = song.find('button',class_='btn btn_play').get('data-norber')
    
    	response2 = requests.get(url)
    	print(f'Download: {title}')
    	with open(title+'.mp3','wb') as file:
    		file.write(response2.content)

    Результат:
    5f23de64518bd519291824.png


    Бонус:
    Парсер для oxy.fm(по вашей ссылке на песню, меня перекинуло на данный сайт):
    import requests
    from bs4 import BeautifulSoup
    	
    response1 = requests.get('https://oxy.fm/')
    
    soup = BeautifulSoup(response1.text,"html.parser")
    
    playlist = soup.find('ul',class_='playlist').find_all('li')
    
    for song in playlist:
    	title = song.find('span',class_='playlist-name-title').text
    	artist = song.find('span',class_='playlist-name-artist').text
    	url = song.find('a',class_='playlist-play no-ajax').get('data-url')
    
    	response = requests.get(url)
    	with open(f'{artist}-{title}.mp3','wb') as file:
    		file.write(response.content)
    
    	print(f'Download {artist}-{title}')


    UDP: Забыл добавить - проверяйте названия песни на содержание спец-символов, которые запрещены в названиях файлов в фс(ext4,fat32,ntfs)
    Ответ написан
    Комментировать
  • Injector dll на python. Как его сделать?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    как работает инжектор.

    На хабре есть:
    5f23303121d78057524939.png
    А если серьёзно, никто вам здесь разъяснять не будет, так как:
    во-первых - парой предложений не объяснить;
    во вторых - информации в интернете столько, сколько за всю жизнь не переварить(конкретно по данной теме)

    Вы не справитесь с данной технологией, так как вы банально не умеете пользоваться поиском:
    Injector dll на python. Как его сделать? - вопрос закрыт, так как повторяет вопрос Как осуществляется перехват/переопределение функц..., вангую ваш вопрос будет закрыт, так как повторяет предыдущие 2! :)

    Замечание конкретно от меня, как от фаната Python - Не следует пихать Python туда, где ему не место! А то потом опять холивары о том, что Python глючный, медленный(благо я такое мнение выдел от мамкиных программистов)

    UDP: А это уже попахивает серьёзным нарушением!!!:
    5f23386e6b95a756061470.png
    Ответ написан
    Комментировать
  • Как авторизоваться на сайте ycharts.com через Python?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Я бы сделал так - авторизовался через selenium, скопировал cookies и пользовался далее request'ом и BS4. Так как при авторизации передается некий "csrfmiddlewaretoken". Я хз как его разгадать. На странице авторизации он есть, но значение не подходит, значит он как-то меняется или шифруется с "солью".
    Если авторизоваться браузером, и скопировать в скрипт из него параметр "csrfmiddlewaretoken" и cookies с именем "csrftoken" и подставив свои данные для авторизации, то авторизоваться можно.
    import requests
    
    cookies = { 'csrftoken': 'ЦиферкиБуковки'}
    
    headers = {	'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36',
        		'Referer': 'https://ycharts.com/login?next=/dashboard/',
    }
    
    data = {
      'csrfmiddlewaretoken': 'ЦиферкиБуковки',
      'username': 'Почта',
      'password': 'Пароль'
    }
    
    response = requests.post('https://ycharts.com/login', headers=headers, cookies=cookies, data=data)
    
    print(response.text)
    Ответ написан
    4 комментария
  • Куда сохранять однотипный большой набор данных в Python?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    База данных на amazon, пара косарей баксов и храните все что угодно.
    Ответ написан
    Комментировать
  • Как тянуть информацию с api?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Там обычный json.
    Пример:
    import json
    import requests
    
    response = requests.get('https://minfin.com.ua/api/currency/ratelist/?currency1=usd&currency2=uah&converter_type=midbank')
    json_data = json.loads(response.text)
    sell = json_data['data']['rates']['sell']
    for key in sell:
    	print(key, '->', sell[key])

    Результат
    USD -> 27.5000
    UAH -> 1
    RUB -> 0.3600
    EUR -> 32.0000
    PLN -> 6.8000
    GBP -> 34.0000
    CZK -> 1.0000
    CNY -> 3.0000
    BYN -> 12.5000
    KZT -> 0


    Можно воспользоваться сервисом jsonviewer.stack.hu для просмотра структуры json.
    Ответ написан
  • Как вызвать внешний исполняемый файл с передачей аргументов из функции python?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Ищите subprocess. В linux можно так:
    import subprocess
    subprocess.run(["ls", "-l", "-a"])

    Попробуйте подправить для Windows(сейчас windows нет под рукой).
    Ответ написан
    Комментировать
  • Python. Как создать список со 100 строками?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Можно так:
    for filenames in files[0:100]:
    или так:
    for filenames in files[:100]:
    Ответ написан
    Комментировать
  • Как исправить ошибку при муте ТГ?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Вы ошибку читали?
    Bad Request: method is available only for supergroups
    Плохой запрос. Метод доступен только для супергруп.

    UDP:
    Неверный запрос. Метод доступен только для супергруп.
    - немного изменил перевод, так как "некоторые" пользователи не понимают перевод выше(может IT это не для них?) ¯\_(ツ)_/¯
    Ответ написан
    3 комментария