πŸ”Ž Как ΠΏΡ€ΠΎΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ сайт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python?

Для парсинга сайта с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ BeautifulSoup.


from urllib.request import urlopen
from bs4 import BeautifulSoup

# ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ URL страницы
url = 'https://example.com'
html = urlopen(url)

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ BeautifulSoup, указывая Ρ‚ΠΈΠΏ парсСра
soup = BeautifulSoup(html, 'html.parser')

# Находим всС ссылки Π½Π° страницС
links = soup.find_all('a')

# Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ ссылки
for link in links:
    print(link.get('href'))
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ urllib для открытия URL страницы ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ BeautifulSoup для парсинга HTML ΠΊΠΎΠ΄Π° страницы.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ URL страницы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ urlopen. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ BeautifulSoup, указывая Ρ‚ΠΈΠΏ парсСра 'html.parser'.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ find_all, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ всС ссылки Π½Π° страницС. ΠœΠ΅Ρ‚ΠΎΠ΄ find_all Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список всСх элСмСнтов с Ρ‚Π΅Π³ΠΎΠΌ 'a'.

НаконСц, ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ ссылкам ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ href с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° get.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΏΡ€ΠΎΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ сайт с использованиСм Python

Π’ настоящСС врСмя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ получСния Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π°Π½Π°Π»ΠΈΠ·Π° содСрТимого Π²Π΅Π±-страниц. ΠŸΡ€ΠΎΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ сайт - Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с Π²Π΅Π±-страницы ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка программирования Python.

Python прСдоставляСт мноТСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ инструмСнтов для парсинга Π²Π΅Π±-страниц. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для пропарсивания сайта.

1. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° requests

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° requests являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с HTTP-запросами Π² Python. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ HTML-ΠΊΠΎΠ΄ Π²Π΅Π±-страницы.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ requests для получСния HTML-ΠΊΠΎΠ΄Π° страницы:


import requests

url = 'https://www.example.com'
response = requests.get(url)
html_code = response.text

print(html_code)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ get() Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ requests для получСния HTML-ΠΊΠΎΠ΄Π° страницы ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ URL-адрСсу. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ HTML-ΠΊΠΎΠ΄ Π½Π° экран.

2. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° BeautifulSoup

BeautifulSoup - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π·Π±ΠΎΡ€Π° HTML-ΠΊΠΎΠ΄Π°. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ элСмСнты ΠΈΠ· HTML-структуры Π²Π΅Π±-страницы.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ BeautifulSoup для извлСчСния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈΠ· HTML-ΠΊΠΎΠ΄Π° страницы:


from bs4 import BeautifulSoup

# ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ пСрСмСнная html_code содСрТит HTML-ΠΊΠΎΠ΄ страницы
soup = BeautifulSoup(html_code, 'html.parser')
headings = soup.find_all('h1')

for heading in headings:
    print(heading.text)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ find_all() ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ BeautifulSoup, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ всС элСмСнты с Ρ‚Π΅Π³ΠΎΠΌ <h1> Π² HTML-ΠΊΠΎΠ΄Π΅ страницы. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ тСкст этих Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π½Π° экран.

3. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Selenium

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Selenium позволяСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС с Π²Π΅Π±-страницами, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌ, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. Она особСнно ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠΎΠ³Π΄Π° Π²Π΅Π±-страница ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JavaScript для динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ содСрТимого.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Selenium для пропарсивания сайта:


from selenium import webdriver

# УстановитС ΠΏΡƒΡ‚ΡŒ ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ Selenium подходящий для вашСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°
# НапримСр, для Chrome ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ChromeDriver
driver = webdriver.Chrome('/path/to/chromedriver')

# ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π²Π΅Π±-страницу
driver.get('https://www.example.com')

# НайдитС элСмСнт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS-сСлСктора ΠΈΠ»ΠΈ Xpath
element = driver.find_element_by_css_selector('#id-of-element')

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ тСкст элСмСнта
text = element.text

print(text)

# Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€
driver.quit()

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Selenium для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствия с Π²Π΅Π±-страницСй. ΠœΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π²Π΅Π±-страницу, Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ элСмСнт Π½Π° страницС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS-сСлСктора ΠΈΠ»ΠΈ Xpath, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ тСкст элСмСнта ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π½Π° экран.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для пропарсивания сайта. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° requests позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ HTML-ΠΊΠΎΠ΄ страницы, BeautifulSoup ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ элСмСнты ΠΈΠ· HTML-структуры, Π° Selenium позволяСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС с Π²Π΅Π±-страницСй.

Π­Ρ‚ΠΈ инструмСнты ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² сообщСствС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Python. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡ…, Π²Ρ‹ смоТСтС ΠΏΡ€ΠΎΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ сайт ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. УспСхов Π² вашСм ΠΏΡƒΡ‚ΠΈ ΠΊ Π²Π΅Π±-скрапингу!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠŸΠ°Ρ€ΡΠΈΠ½Π³ Π² Python Π·Π° 10 ΠΌΠΈΠ½ΡƒΡ‚!

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ парсингу Π½Π° Python #1 | ΠŸΠ°Ρ€ΡΠΈΠ½Π³ сайтов | Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Beautifulsoup

Как ПАРБИВЬ сайты Π½Π° PYTHON?

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ» ΠΏΠΈΡ‚ΠΎΠ½Π°: ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ πŸ”Ž

πŸ”₯Как ввСсти значСния Π² строку Python: простой ΠΈ понятный Π³Π°ΠΉΠ΄πŸ’»

πŸ“Š Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ MySQL с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: пошаговоС руководство 🐍

πŸ”Ž Как ΠΏΡ€ΠΎΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ сайт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python?

β˜‘οΈ Как вывСсти Ρ†Π΅Π»ΡƒΡŽ ΠΈ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π² Python - ПолноС руководство 2021

πŸ“ Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ тоТдСство Π² Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ 🐍

πŸ” Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΡ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π» Ρ„Π°ΠΉΠ» ΠΏΠΎ сСти с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? πŸ“‚