В статье автор делится кодом на языке программирования Python для сбора лингвистических данных, а также проводит исследование с полученными данными, используя количественный метод анализа.
Ключевые слова: парсинг, сбор данных, лингвистические исследования, юридическая консультация, частотный словарь.
Что такое парсинг? Парсинг — автоматизированный сбор и систематизация информации из открытых источников с помощью скриптов. Скрипты, собирающие и систематизирующие информацию, называются парсерами. Они работают на разных языках программирования — Python, JavaScript и других [1]. Парсинг умело используется маркетологами для сбора информации о конкурентах, мониторинга отношения потенциальных клиентов к тому или иному продукту. Парсеры собирают данные быстро, в любом режиме, даже круглосуточно, а также представляют их в любом необходимом формате без лишних усилий.
Парсинг интересен не только маркетологам, но и лингвистам, юристам и многим другим специальностям, где анализ большого объема текстовых данных помогает принять то или иное решение, прийти к какому-либо заключению, сделать обоснованные выводы. Иными словами, инструмент для парсинга мог бы пригодиться гораздо более широкому кругу специалистов, интересующихся лингвистическими исследованиями в своей области.
Цифровым лингвистам Института филологии, журналистики и межкультурной коммуникации в рамках проектной деятельности была поставлена задача провести исследование обращений граждан на юридических сайтах — с какими вопросами чаще обращаются, как формулируют свои вопросы и др. Предварительно нами был выбран количественный метод анализа текстовых данных и поставлена задача собрать тексты обращений граждан с сайта pravoved.ru [2]. Такой выбор не случаен, сайт pravoved — содержит множество вопросов от пользователей, сохранённых на тысячах страницах в хронологическом порядке. Они разделены на 32 категории, среди которых конституционное, гражданское, семейное, трудовое право и др.
Однако извлечение данных с сайта вручную — очень долгий, изнурительный и неэффективный процесс. Именно поэтому было принято решение использовать парсеры. Существующие инструменты, найденные нами на различных ресурсах, в том или ином аспекте либо не подходили под наши задачи, либо требовали денежных инвестиций. В итоге нами был разработан код на языке программирования Python, приведенный ниже (Таблица 1).
Прежде чем запустить его, необходимо предварительная установка трех библиотек: BeautifulSoup, requests и openpyxl .
BeautifulSoup позволяет извлекать данные из веб-страниц, а также облегчает работу с ними, requests быстро и просто работает с запросами, а openpyxl записывает полученную информацию в файл формата CSV или Excel-файл (XLSX).
Таблица 1
Код для парсинга запросов пользователей сайта pravoved . ru |
from openpyxl import load_workbook wb = load_workbook('Парсинг.xlsx') sheet = wb['Готовый'] from bs4 import BeautifulSoup import requests global list_of_values def parce_it(element, Class): #Функция парсинга res = requests.get(url) soup = BeautifulSoup(res.text,'html.parser') sp = soup.find_all(element, class_= Class) print(res) #Добавление результатов построчно в список for post in sp: list_of_values.append(post.get_text()) #Добавление результатов из списка в таблицу i1 = sheet.max_row + 1 for number in list_of_values: print(number) sheet.cell(row = i1, column=5, value = number) i1 += 1 list_of_values = [] attempts = int(input('Введите количество попыток: ')) url = 'https://pravoved.ru/questions/5/' for numbers in range(0, attempts): element = 'div' Class = 'QuestionListItem_text__ub76v' parce_it(element, Class) url = url[0:30] + str(numbers + 2) + '/' print(url) wb.save("Парсинг.xlsx") |
Дадим некоторый комментарий к приведенному коду.
Первые 5 строк — это подключение необходимых библиотек и открытие файла для записи. Далее переходим к функции. Сначала получаем информацию от сайта, доступен ли он для парсинга. Если ответ Response 200, сбор данных разрешён. Далее они записываются в файл.
Во второй части кода выводится строка для ввода пользователем числа страниц, которые ему необходимо обработать, ссылка на сайт и цикл, который ссылается на функцию. Ссылка на сайт каждый раз автоматически редактируется для перехода на следующую страницу. Последняя строка — сохранение файла.
Единственное, что требуется от пользователя, — написать количество страниц, которое нужно обработать парсером. Далее программа сделает всё самостоятельно и сохранит результат.
Мы получили результат из 20000 строк, каждая из которых содержала отдельное обращение пользователя. Объем полученных данных нами ещё изучается, но для примера работы с количественным методом мы приводим облако слов (Рис. 1), полученное с помощью сайта wordart.com [3].
Даже в первом приближении мы можем заметить, что самое частотное слово в обращениях граждан на сайте юридической консультации — «меня». Примечательно, что это не «я», т. е. не именительный падеж, а родительный и винительный. Так как чаще всего после объяснения ситуации пользователи задают вопросы, в частотном словаре много вопросительных слов: как, какой, где, когда. Также частица ли в сочетании с можно — самая распространённая форма задания вопроса. Слова подскажите и пожалуйста имеют практически равное количество употреблений, являясь клише для формирования вопроса, как и необходимые в коммуникации фразы приветствия — здравствуйте, добрый день, добрый вечер . Наиболее частая проблема, интересующая посетителей сайта — вопрос жилья: квартира , участок , а также услуги , деньги и контракты . Семейная ветвь права одна из самых обширных, поэтому нередко встречаются такие слова как муж , ребёнок , дочь , сын .
Рис. 1. Частотное представление текстовых данных (сайт wordart.com)
В табличных данных полученного частотного словаря кроется ещё много тайн, которые вполне раскрываемы благодаря цифровым технологиям.
Литература:
- Корнелюк А. Что такое парсинг, и что о нём нужно знать маркетологам [Электронный ресурс] // портал Марквиз URL: https://www.marquiz.ru/blog/chto-takoe-parsing (дата обращения 10.04.2024).
- Юридическая консультация онлайн [Электронный ресурс] // портал Pravoved. URL: https://pravoved.ru/ (дата обращения 10.04.2024).
- Best word cloud generator [Электронный ресурс] // WordArt. URL: https://wordart.com/ (дата обращения 01.04.2024).