Перед тем как приступить к машинному обучению (ML) необходимо собрать и обработать данные, а точнее выполнить скрапинг и парсинг. Теперь немного поподробнее



Веб-скрапинг – это процесс автоматического сбора информации из онлайн-источников. Для выбора нужных сведений из массива «сырых» данных, полученных в ходе скрапинга, нужна дальнейшая обработка – парсинг. В процессе парсинга выполняются синтаксический анализ, разбор и очистка данных. Результат парсинга – очищенные, упорядоченные, структурированные данные, представленные в формате, понятном конечному пользователю (или приложению).



Для скрапинга содержимого страницы можно воспользоваться библиотеками BeautifulSoup и requests:

from bs4 import BeautifulSoup

import requests

url = 'http://example.com'

res = requests.get(url)

soup = BeautifulSoup(res.text,'html.parser')

print(soup)

Далее сырые данные нужно обработать, сделать парсинг, чтобы извлечь из них нужную информацию.



find_all(‘object’) – функция проводит поиск по странице и возвращает все найденные объекты в виде списка;



find(‘object’).text – этот метод вернет текст, находящийся в объекте;

results=soup.find_all('h1', class_='title')

for result in results:

print(result.get_text())

Для скрапинга и парсинга динамического контента лучше использовать библиотеку Selenium. Например, если не прокрутить всю страницу информация не загрузится. Для имитации прокрутки можно воспользоваться скриптом 'window.scrollTo(0, document.body.scrollHeight);'

from selenium import webdriver

from selenium.webdriver.chrome.service import Service as ChromeService

from webdriver_manager.chrome import ChromeDriverManager

import time



driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

url = 'http://example.com'

driver.get(url)

driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')

time.sleep(5)

html = driver.page_source

soup = BeautifulSoup(html, 'html.parser')

А далее стандартная работа с BeautifulSoup.



Это один из приемов по скрапингу и парсингу данных, в зависимости от сайта способы извлечения и обработки данных могут меняться.