Выбор div текста по тексту в <span> - PullRequest
0 голосов
/ 27 января 2019

Я хочу выделить текст div на странице по тексту специального диапазона.Например, у меня есть:

<div>
  <span> Org name: </span>
   "corp. org name"
 </div>

Итак, я хочу выбрать corp. org name путем поиска всех находок по тексту в тегах span.Org name:

1 Ответ

0 голосов
/ 27 января 2019

Прежде всего, я не говорю по-русски.Итак, я не могу проверить, хотите ли вы этого или нет.

Я сделал то, что, как вы думаете, вы хотите, для поиска 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', 'Ссылка на приказ Минкомсвязи:': 'Приказ'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...