πŸ”’ Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTML страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTML страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ requests для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ содСрТимого страницы ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ BeautifulSoup для извлСчСния HTML ΠΊΠΎΠ΄Π°.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ это:

        
import requests
from bs4 import BeautifulSoup

def save_html(url, output_file):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')
    
    with open(output_file, 'w', encoding='utf-8') as file:
        file.write(soup.prettify())

url = "https://www.example.com"
output_file = "saved_page.html"
save_html(url, output_file)
        
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ save_html, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ URL страницы, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΈ имя Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTML ΠΊΠΎΠ΄.

ΠœΡ‹ отправляСм GET запрос ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ URL с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ requests. Π—Π°Ρ‚Π΅ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ BeautifulSoup, ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ HTML ΠΊΠΎΠ΄ страницы.

НаконСц, ΠΌΡ‹ записываСм ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ HTML ΠΊΠΎΠ΄ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ open ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° write.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTML страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python.

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

Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ html страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ HTML-страницы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ страницу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, создания ΠΎΠ±Ρ€Π°Π·Ρ†Π° ΠΈΠ»ΠΈ для ΠΎΡ„Π»Π°ΠΉΠ½-использования. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько способов сохранСния HTML-страницы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python.

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ requests

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° requests прСдоставляСт простой способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ HTML-страницу ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π² Ρ„Π°ΠΉΠ». Для Π½Π°Ρ‡Π°Π»Π° установитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ requests, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pip install requests

ПослС установки Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ страницу с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ URL-адрСсом:

import requests

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

with open('example.html', 'w') as file:
    file.write(response.text)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ get ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ requests, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТимоС HTML-страницы ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ URL-адрСсу. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ 'example.html' ΠΈ записываСм Π² Π½Π΅Π³ΠΎ содСрТимоС страницы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° write.

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ urllib

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTML-страницу - это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ urllib, которая являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

from urllib import request

url = 'https://www.example.com'
response = request.urlopen(url)

with open('example.html', 'w') as file:
    file.write(response.read().decode())

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ urlopen ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ urllib, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ URL-адрСс ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ содСрТимоС. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм Ρ„Π°ΠΉΠ» ΠΈ записываСм содСрТимоС страницы, дСкодируя Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° decode.

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Selenium

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTML-страницу, которая гСнСрируСтся динамичСски с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Selenium. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTML-страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Selenium:

from selenium import webdriver

url = 'https://www.example.com'
driver = webdriver.Chrome()
driver.get(url)

html = driver.page_source

with open('example.html', 'w') as file:
    file.write(html)

driver.quit()

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм экзСмпляр Π²Π΅Π±-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Chrome с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Selenium. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ URL-адрСс ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ исходный ΠΊΠΎΠ΄ HTML-страницы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° page_source. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ сохраняСм ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ HTML-ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ».

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Beautiful Soup

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Beautiful Soup прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· HTML-страницы. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для сохранСния HTML-страницы. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = 'https://www.example.com'
html = urlopen(url)
soup = BeautifulSoup(html, 'html.parser')

with open('example.html', 'w') as file:
    file.write(soup.prettify())

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ urlopen ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ urllib.request, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТимоС HTML-страницы. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Beautiful Soup ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ HTML-ΠΊΠΎΠ΄. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ сохраняСм красиво ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ HTML-ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° prettify.

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов сохранСния HTML-страницы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ΄, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Π²Ρ‹ смоТСтС Π»Π΅Π³ΠΊΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ HTML-страницы для дальнСйшСго использования.

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

Python Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… β„–3. Π˜ΠΌΠΏΠΎΡ€Ρ‚ с Π²Π΅Π±-сайта (HTML)

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ скрипт Python ΠΊ html

Π’ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊΠΈ Python Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ HTML ΠΊΠΎΠ΄ Π²Π΅Π± страницы

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

πŸ”Ž Как Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ значСния Π² массивС Python? 🐍

πŸ” Как Π½Π°ΠΉΡ‚ΠΈ подстроку Π² спискС Python: Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ эффСктивный способ

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ число Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ? πŸπŸ’»

πŸ”’ Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTML страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

πŸ“ Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²Π° условия Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: простоС объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

πŸ”§ Как ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π² Python 3: простой Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ” Как Π²Π·ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с сайта с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство