Основы работы с регулярными выражениями и производство http запросов. Библиотека регулярных выражений re
- Главная
- Информатика
- Основы работы с регулярными выражениями и производство http запросов. Библиотека регулярных выражений re
Содержание
- 2. ПОНЯТИЕ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ уязвимост PATTERN . ^ $ * + ? { } [ ] \
- 3. МЕТОДЫ И ФУНКЦИИ БИБЛИОТЕКИ re ФУНКЦИЯ match, МЕТОДЫ group(), groups() import re title = "Белгород 308000,
- 4. МЕТОДЫ И ФУНКЦИИ БИБЛИОТЕКИ re ФУНКЦИИ search И findall title = """Белгород 308000 ул. Костюкова, 46
- 5. МЕТОДЫ И ФУНКЦИИ БИБЛИОТЕКИ re МЕТОД sub title = """Белгород 308000 ул. Костюкова, 46 Москва 127000,
- 6. HTTP-ЗАПРОСЫ С РЕГУЛЯРНЫМИ ВЫРАЖЕНИЯМИ Формируем XML-карту сайта по адресу http://ratings.bstu.ru/direction с помощью инструмента xml-sitemaps.com – кладем
- 8. Скачать презентацию
Слайд 2ПОНЯТИЕ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ
уязвимост
PATTERN
. ^ $ * + ? { } [ ]
ПОНЯТИЕ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ
уязвимост
PATTERN
. ^ $ * + ? { } [ ]
Метасимволы
Б.{4}род
Белгород
Б.огород
Б. Народ
Безпород
Слайд 3МЕТОДЫ И ФУНКЦИИ БИБЛИОТЕКИ re
ФУНКЦИЯ match, МЕТОДЫ group(), groups()
import re
title = "Белгород
МЕТОДЫ И ФУНКЦИИ БИБЛИОТЕКИ re
ФУНКЦИЯ match, МЕТОДЫ group(), groups()
import re title = "Белгород
example = re.match( '(.*) (\d{6}), (.*)', title, re.M|re.I)
if example:
print("example.group(): ", example.group())
print("example.group(1): ", example.group(1))
print("example.group(2): ", example.group(2))
print("example.groups(): ", example.groups())
else:
print("Нет совпадений!")
re.match(pattern, string, flags=0)
Белгород 308000, ул. Костюкова, 46
Белгород
308000
('Белгород', '308000', 'ул. Костюкова, 46')
Слайд 4МЕТОДЫ И ФУНКЦИИ БИБЛИОТЕКИ re
ФУНКЦИИ search И findall
title = """Белгород 308000 ул.
МЕТОДЫ И ФУНКЦИИ БИБЛИОТЕКИ re
ФУНКЦИИ search И findall
title = """Белгород 308000 ул.
if example:
print("example.group():", example.group())
print("example.group(1):", example.group(1))
print("example.group(2):", example.group(2))
print("example.group(3):", example.group(3))
print("example.groups():", example.groups())
else:
print("Нет совпадений!")
re.search(pattern, string, flags=0)
Москва 127000, ул. Академика Королева, 12
Москва
127000
ул. Академика Королева, 12
('Москва', '127000', 'ул. Академика Королева, 12')
Ищем пробел перед строкой
Функция findall объединяет match и search: ищет pattern по всей строке.
Имеет тот же формат
Слайд 5МЕТОДЫ И ФУНКЦИИ БИБЛИОТЕКИ re
МЕТОД sub
title = """Белгород 308000 ул. Костюкова, 46
МЕТОДЫ И ФУНКЦИИ БИБЛИОТЕКИ re
МЕТОД sub
title = """Белгород 308000 ул. Костюкова, 46
ex2 = re.sub('(\d{6})', '111111', title) print(ex2)
re.sub(pattern, repl, string)
Белгород 111111 ул. Костюкова, 46
Москва 111111, ул. Академика Королева, 12
Заменяет в строке string вхождение pattern на repl
Слайд 6HTTP-ЗАПРОСЫ С РЕГУЛЯРНЫМИ ВЫРАЖЕНИЯМИ
Формируем XML-карту сайта по адресу http://ratings.bstu.ru/direction
с помощью инструмента
HTTP-ЗАПРОСЫ С РЕГУЛЯРНЫМИ ВЫРАЖЕНИЯМИ
Формируем XML-карту сайта по адресу http://ratings.bstu.ru/direction
с помощью инструмента
from bs4 import BeautifulSoup as BeSo
import requests
import re
content = []
with open(".../rbstu-sitemap.xml","r") as file:
content = file.readlines()
content = "".join(content)
bs_content = BeSo(content, "lxml")
add_list = []
pbs = bs_content.findAll('loc')
for p in pbs: p1 = p.renderContents().decode('UTF-8’)̆
pr = re.findall('http://ratings.bstu.ru/direction/000000003/000000001/00000000\d{1}/09.*',p1) if pr:
add_list.append(pr)
for j,_ in enumerate(add_list): response =requests.get(add_list[j][0])
soup = BeSo(response.text)
P = soup.find(text='По общему конкурсу').findNext('tbody').findAll('tr') counter = 0
for p in P:
Yes = p.findAll('td')[4].renderContents().decode('UTF-8') if Yes == 'Есть’:
counter+=1
d = re.search('(09.\d{2}.\d{2})',add_list[j][0]).group(1) print('Имеется ',counter,' согласий на направление ', d)