我想通过特殊的跨度文本在页面上选择div文本。例如,我有:
<div>
<span> Org name: </span>
"corp. org name"
</div>
因此,我想通过按span标签中的文本搜索所有查找内容来选择corp. org name
。 Org name:
答案 0 :(得分:0)
首先,我不会说俄语。因此,我无法验证这是否是您想要的。
我已经做出了我想您想要的内容,该内容将搜索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', 'Ссылка на приказ Минкомсвязи:': 'Приказ'}