Прежде всего, я не говорю по-русски.Итак, я не могу проверить, хотите ли вы этого или нет.
Я сделал то, что, как вы думаете, вы хотите, для поиска org name:
, чтобы вернуть Corp. org name:
.Следующая функция делает именно это и возвращает словарь org name
в качестве ключа и corp org name
в качестве значения.Вот оно:
def scrape(url):
page = requests.get(url, verify=False)
soup = BeautifulSoup(page.content, 'lxml')
#find all divs on the right side
lst = soup.find_all('div', {"style": "margin-bottom: 16px;"})
#the output dictioary
corpNames = {}
for idx, link in enumerate(lst):
#get the text inside <span> which is the key
key = link.find('span').get_text()
if key:
value = link.get_text()
value = re.sub(key, "", value)
value = re.sub(r"\s+", " ", value) #reduce white spaces
corpNames[key] = value.strip()
return corpNames
А вот как это использовать:
>>> import re
>>> import requests
>>> from bs4 import BeautifulSoup
>>>
>>> url = "https://reestr.minsvyaz.ru/reestr/61245/"
>>> d = scrape(url)
>>> print(d)
{'Альтернативные наименования:': 'ЭПС "Система ГАРАНТ"', 'Класс ПО:': 'Информационные системы для решения специфических отраслевых задач, Поисковые системы, Прикладное программное обеспечение общего назначения, Офисные приложения, Лингвистическое программное обеспечение', 'Сайт производителя:': 'http://www.aero.garant.ru', 'Дата регистрации:': '20 Февраля 2016', 'Рег. номер ПО:': '6', 'Дата решения уполномоченного органа:': '20 Февраля 2016', 'Решение уполномоченного органа:': 'Приказ Минкомсвязи России от 20.02.2016 №63', 'Ссылка на приказ Минкомсвязи:': 'Приказ'}