import re
text1 = "Система используется код юзеров"
text2 = "Система использует, код юзер"
re_list = [
('юзер', 'пользователь'),
('использует', 'юзает')
]
for example in [text1, text2]:
out = example
for patt_in, patt_out in re_list:
out = re.sub(
'(\s+|,|\.|^)'+patt_in+'(\s|,|\.|$)',
'\g<1>'+patt_out+'\g<2>',
out
)
print(f'Before: {example}')
print(f'After: {out}\n')
Before: Система используется код юзеров
After: Система используется код юзеров
Before: Система использует код юзер
After: Система юзает, код пользователь
in_data = {
'may 2017': [24, 26, 15, 10, 15, 19, 10, 1, 4, 7, 7, 7, 12, 14, 17, 8, 9, 19, 21, 22, 11, 15, 19, 23, 15, 21, 16, 13, 25, 17, 19],
'may 2018': [20, 27, 23, 18, 24, 16, 20, 24, 18, 15, 19, 25, 24, 26, 19, 24, 25, 21, 17, 11, 20, 21, 22, 23, 18, 20, 23, 18, 22, 23, 11]
}
for im in in_data.keys():
print(im, len(list(filter(lambda x: x>=22 and x <=26, in_data[im]))))
may 2017 5
may 2018 13
LIMIT = 250
current = 0
has_more = True
while has_more:
res = request.get(f'https://api.hubapi.com/deals/v1/deal/paged?limit={LIMIT}&...&offset={current}')
# .... обработка данных .....
current += LIMIT
has_more = res.json().get('hasMore')
смс, email, browser
>>> import lxml.html
>>> str1 = """
... <tr>
... <td>99</td>
... <td>Name</td>
... <td>ЕГЭ</td>
... <td>268</td><td>90</td><td>91</td><td>87</td>
... <td></td>
... <td>Копия</td>
... <td>Нет</td>
... </tr>"""
>>> root = lxml.html.fromstring(str1)
>>> [x.text for x in root.xpath('.//td')]
['99', 'Name', 'ЕГЭ', '268', '90', '91', '87', None, 'Копия', 'Нет']
import re
import pprint
import requests
import lxml.html
URL = 'http://www.asu.ru/timetable/students/32/2129436778/'
pp = pprint.PrettyPrinter(indent=4)
res = requests.get(URL)
root = lxml.html.fromstring(res.text)
table = list()
elems = root.xpath('.//tr[@class="schedule-date"]|.//tr[@class="schedule-time"]')
curr_date = ''
for el in elems:
if el.get('class') == 'schedule-date':
curr_date = el.xpath('.//span[1]')[0].text
if el.get('class') == 'schedule-time':
out = re.sub(' +', ' ', ''.join(el.itertext()))
out = re.sub('^\s+', '', out)
out = re.sub('\n+', '', out)
table.append({'date': curr_date, 'info': out})
pp.pprint(table)
[ { 'date': 'Понедельник',
'info': '4 13:20 - 14:50 лек. Физические методы исследования '
'проф. Смагин В.П. 500\xa0К дата изменения: 08.04.2019 '
'11:21 свободные аудитории '},
{ 'date': 'Понедельник',
'info': '2 09:40 - 11:10 а) лаб. Новые информационные '
'технологии преп. Кушнир Е.Ю. 417\xa0К дата '
'изменения: 24.04.2019 11:16 свободные аудитории '},
{ 'date': 'Понедельник',
'info': '3 11:20 - 12:50 пр.з. Социология доц. Артюхина '
'В.А. 311а\xa0К дата изменения: 24.04.2019 11:13 '
'свободные аудитории '},
{ 'date': 'Вторник',
'info': '3 11:20 - 12:50 пр.з. Социология доц. Артюхина '
'В.А. 311а\xa0К дата изменения: 24.04.2019 11:13 '
'свободные аудитории '},
{ 'date': 'Вторник',
'info': '1 08:00 - 09:30 пр.з. Педагогика доц. Зацепина '
'О.В. 311а\xa0К дата изменения: 24.04.2019 11:11 '
'свободные аудитории '},
{ 'date': 'Вторник',
'info': '2 09:40 - 11:10 пр.з. Педагогика доц. Зацепина '
'О.В. 311а\xa0К дата изменения: 24.04.2019 11:07 '
'свободные аудитории '},
{ 'date': 'Вторник',
'info': '3 11:20 - 12:50 пр.з. Кристаллохимия доц. Стручева '
'Н.Е. 106а\xa0К дата изменения: 24.04.2019 11:06 '
'свободные аудитории '},
{ 'date': 'Среда',
'info': '3 11:20 - 12:50 пр.з. Кристаллохимия доц. Стручева '
'Н.Е. 106а\xa0К дата изменения: 24.04.2019 11:06 '
'свободные аудитории '},
{ 'date': 'Среда',
'info': '3 11:20 - 12:50 а) лаб. Новые информационные '
'технологии преп. Кушнир Е.Ю. 419\xa0К дата '
'изменения: 08.04.2019 11:21 свободные аудитории '},
{ 'date': 'Среда',
'info': 'б) лаб. Новые информационные технологии доц. Геньш К.В. '
'417\xa0К дата изменения: 08.04.2019 11:21 свободные '
'аудитории '},
{ 'date': 'Среда',
'info': '4 13:20 - 14:50 б) лаб. Новые информационные '
'технологии доц. Геньш К.В. 417\xa0К дата '
'изменения: 24.04.2019 11:18 свободные аудитории '},
{ 'date': 'Четверг',
'info': '4 13:20 - 14:50 б) лаб. Новые информационные '
'технологии доц. Геньш К.В. 417\xa0К дата '
'изменения: 24.04.2019 11:18 свободные аудитории '},
{ 'date': 'Четверг',
'info': '2 09:40 - 11:10 а) пр.з. Аналитическая химия доц. '
'Лейтес Е.А. 500\xa0К дата изменения: 29.04.2019 '
'10:56 свободные аудитории '},
{ 'date': 'Четверг',
'info': '3 11:20 - 12:50 пр.з. Физические методы исследования '
'проф. Смагин В.П. 521\xa0К дата изменения: 24.04.2019 '
'11:15 свободные аудитории '},
{ 'date': 'Четверг',
'info': '4 13:20 - 14:50 б) пр.з. Аналитическая химия проф. '
'Смагин В.П. 508\xa0К дата изменения: 29.04.2019 '
'10:55 свободные аудитории '},
{ 'date': 'Пятница',
'info': '4 13:20 - 14:50 б) пр.з. Аналитическая химия проф. '
'Смагин В.П. 508\xa0К дата изменения: 29.04.2019 '
'10:55 свободные аудитории '},
{ 'date': 'Пятница',
'info': '1 08:00 - 09:30 а) лаб. Аналитическая химия доц. '
'Лейтес Е.А. 509\xa0К дата изменения: 29.04.2019 '
'10:55 свободные аудитории '},
{ 'date': 'Пятница',
'info': 'б) лаб. Аналитическая химия проф. Смагин В.П. 508\xa0'
'К дата изменения: 29.04.2019 10:55 свободные '
'аудитории '},
{ 'date': 'Пятница',
'info': '2 09:40 - 11:10 а) лаб. Аналитическая химия доц. '
'Лейтес Е.А. 509\xa0К дата изменения: 29.04.2019 '
'10:54 свободные аудитории '},
{ 'date': 'Пятница',
'info': 'б) лаб. Аналитическая химия проф. Смагин В.П. 508\xa0'
'К дата изменения: 29.04.2019 10:53 свободные '
'аудитории '},
{ 'date': 'Пятница',
'info': '3 11:20 - 12:50 а) лаб. Аналитическая химия доц. '
'Лейтес Е.А. 509\xa0К дата изменения: 29.04.2019 '
'10:53 свободные аудитории '},
{ 'date': 'Пятница',
'info': 'б) лаб. Аналитическая химия проф. Смагин В.П. 508\xa0'
'К дата изменения: 29.04.2019 10:52 свободные '
'аудитории '},
{ 'date': 'Пятница',
'info': '4 13:20 - 14:50 лек. Физические методы исследования '
'проф. Смагин В.П. 500\xa0К дата изменения: 08.04.2019 '
'11:21 свободные аудитории '}]