π ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ΅ΠΊΠ»Π°ΠΌΡ Π½Π° Python | ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΡΠ΅ΠΊΠ»Π°ΠΌΡ Π½Π° Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ AdBlock. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import requests
url = "https://example.com"
payload = {"ad": "block"}
response = requests.post(url, data=payload)
if response.status_code == 200:
print("Π Π΅ΠΊΠ»Π°ΠΌΠ° Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ!")
else:
print("ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ.")
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ΅ΠΊΠ»Π°ΠΌΡ Π½Π° Python
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ΅ΠΊΠ»Π°ΠΌΡ - ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΡΠ°Π½ΠΈΡΡ Π½Π°Π²ΡΠ·ΡΠΈΠ²ΡΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ΅ΠΊΠ»Π°ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠ° Python ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΡΠ΅ΠΊΠ»Π°ΠΌΡ, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ:
pip install pyparsing
pip install requests
pip install beautifulsoup4
Pyparsing ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ HTML-ΠΊΠΎΠ΄ ΡΡΡΠ°Π½ΠΈΡΡ, requests - Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ, Π° beautifulsoup4 - ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· HTML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ°
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΡΠ΅ΠΊΠ»Π°ΠΌΡ. ΠΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ:
- ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ
- ΠΠ½Π°Π»ΠΈΠ· HTML-ΠΊΠΎΠ΄Π°
- ΠΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ
- Π‘ΠΊΡΡΡΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
import requests
from bs4 import BeautifulSoup
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ:
def load_page(url):
response = requests.get(url)
return response.content
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ - Π°Π½Π°Π»ΠΈΠ· HTML-ΠΊΠΎΠ΄Π°. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ BeautifulSoup Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ:
def parse_html(html):
soup = BeautifulSoup(html, 'html.parser')
return soup
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΊΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ id:
def find_ads(soup):
ads = soup.find_all('div', class_='ad')
return ads
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΊΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ. ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΊΡΡΡΠΈΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ:
def hide_ads(ads):
for ad in ads:
ad.decompose()
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ°
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
url = 'https://example.com'
html = load_page(url)
soup = parse_html(html)
ads = find_ads(soup)
hide_ads(ads)
print(soup.prettify())
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ HTML-ΠΊΠΎΠ΄, Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ Π²ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈ ΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΈΡ . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ HTML-ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° prettify().
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ΅ΠΊΠ»Π°ΠΌΡ Π½Π° Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ Π½ΡΠΆΠ΄Ρ. Π ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ΅ΠΊΠ»Π°ΠΌΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΡΠ½ΡΠΌ ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π½Π°Π²ΡΠ·ΡΠΈΠ²ΡΠΌ.