Debian 8, 9, 10, 11 (64-bit)
$ python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pytube import YouTube
>>> yt = YouTube('https://www.youtube.com/watch?v=bmXP-58FItA')
>>> yt.streams.filter(type='video').get_highest_resolution().resolution[0:-1]
'720'
>>>
import json
from bs4 import BeautifulSoup
DOC = '''
<html>
<head></head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;">
[
{"id":1,"name":"Склад 407","quantity":"0.0"},
{"id":9,"name":"Литейка","quantity":"0.0"},
{"id":16,"name":"СЛК - 407 каб.","quantity":"0.0"},
{"id":18,"name":"СЛК - 521 каб. МКШ-96","quantity":"0.0"},
{"id":19,"name":"СЛК - 524 каб.","quantity":"0.0"},
{"id":20,"name":"СЛК - литейка","quantity":"0.0"},
{"id":26,"name":"СЛК - Сборка Lifepad","quantity":"3.0"}
]
</pre>
</body>
</html>
'''
soup = BeautifulSoup(DOC, 'lxml')
data = json.loads(soup.find('pre').text)
for item in data:
print(f"{item['name']} - {item['quantity']}")
import pandas as pd
CSV = 'test.csv'
with open(CSV, 'r', encoding='utf-8') as f:
df = pd.read_csv(f)
row = df[df['user_id'] == 100289]
настройка зависимостей лежит на пользователе
Также наткнулась на информацию, что через snap лучше устанавливать тяжеловесные приложения, а через apt все остальное.
И еще из нескольких статей сделала вывод, что snap предоставляет большую безопасность.
from bs4 import BeautifulSoup
OLD_DOC = '''
<html>
<body>
<h2>Заголовок раздела</h2>
<p>Какой-то контент 1</p>
<p>Какой-то контент 2</p>
<p>Какой-то контент 3</p>
<p>Какой-то контент 4</p>
<p>Какой-то контент 5</p>
<h2>Другой заголовок раздела</h2>
<p>Опять какой-то контент 1</p>
<p>Опять какой-то контент 2</p>
<p>Опять какой-то контент 3</p>
<p>Опять какой-то контент 4</p>
<p>Опять какой-то контент 5</p>
<h2>Ещё один заголовок раздела</h2>
<p>Ещё один какой-то контент 1</p>
<p>Ещё один какой-то контент 2</p>
<p>Ещё один какой-то контент 3</p>
<p>Ещё один какой-то контент 4</p>
<p>Ещё один какой-то контент 5</p>
</body>
</html>
'''
NEW_DOC = ''
part_start = OLD_DOC.rfind("<h2>")
while part_start != -1:
part_stop = OLD_DOC.find('</body>')
part = OLD_DOC[part_start:part_stop].strip()
NEW_DOC = f'<div>\n{part}\n</div>\n{NEW_DOC}'
OLD_DOC = OLD_DOC.replace(part,"")
part_start = OLD_DOC.rfind("<h2>")
soup = BeautifulSoup(NEW_DOC, 'lxml')
data = soup.find_all('div')
# далее по вкусу