Φόρουμ μαθημάτων λογισμικού και Τεχνολογίας
Εκμάθηση λογισμικού => Python => να ξεκίνησε π: Sevfa στις Μαρ 21, 2026, 10:18
Το web scraping στο Python είναι μία από τις πιο ισχυρές και δημοφιλείς μεθόδους για τη συλλογή δεδομένων από ιστότοπους στο διαδίκτυο. Η μονάδα Requests χρησιμοποιείται για την αποστολή αιτημάτων HTTP και τη λήψη σελίδων, ενώ το BeautifulSoup αναλύει το ληφθέν περιεχόμενο HTML και σας επιτρέπει να εξάγετε τα επιθυμητά δεδομένα. Το 2026, το web scraping παραμένει απαραίτητο σε πεδία όπως η επιστήμη δεδομένων, η παρακολούθηση τιμών, η ανάλυση ειδήσεων, η έρευνα ανταγωνισμού και τα έργα αυτοματισμού. Ωστόσο, είναι υποχρεωτικό να τηρούνται οι ηθικοί κανόνες και τα αρχεία robots.txt – απαιτείται νόμιμη και υπεύθυνη χρήση.Στο Google, αναζητήσεις όπως "Python web scraping", "BeautifulSoup tutorial", "Python requests", "web scraping beautifulsoup" είναι από τις υψηλότερες σε όγκο θεμάτων Python στην Τουρκία και παγκοσμίως. Αυτή η δεξιότητα χρησιμοποιείται σε ευρύ φάσμα, από freelance εργασίες μέχρι μεγάλης κλίμακας έργα συλλογής δεδομένων.Γιατί Πρέπει να Μάθετε Web Scraping; (Προοπτική 2026)- Πηγή δεδομένων: Συλλέξτε δεδομένα από ιστότοπους χωρίς API (τιμές e-commerce, τίτλοι ειδήσεων, αγγελίες εργασίας).
- Αυτοματισμός: Αντί για χειροκίνητη συλλογή δεδομένων, χρησιμοποιήστε σενάρια για να τραβήξετε χιλιάδες δεδομένα σε δευτερόλεπτα.
- Βάση επιστήμης δεδομένων: Δημιουργήστε σύνολα δεδομένων για μοντέλα μηχανικής μάθησης.
- Δημοφιλείς χρήσεις: Ιστότοποι σύγκρισης τιμών, παρακολούθηση αποθεμάτων, ανάλυση κοινωνικών δικτύων.
- Πλεονέκτημα καριέρας: Αναζητείται συχνά σε θέσεις μηχανικού δεδομένων και ειδικών scraping.
- Προειδοποίηση: Η υπερβολική αποστολή αιτημάτων μπορεί να επιβραδύνει τον ιστότοπο (κίνδυνος απαγόρευσης IP). Χρησιμοποιήστε time.sleep() και προσέξτε τα όρια ρυθμού.
ΕγκατάστασηΣτο τερματικό:pip install requests beautifulsoup4 lxml- requests: Για αιτήματα HTTP.
- beautifulsoup4: Για ανάλυση HTML.
- lxml: Πιο γρήγορος αναλυτής (προαιρετικός αλλά συνιστάται).
1. Λήψη Σελίδας με RequestsΑπλή λήψη σελίδας:import requests
url = "https://example.com"
response = requests.get(url)
# Έλεγχος κατάστασης
if response.status_code == 200:
print("Επιτυχία!")
html_content = response.text # Κείμενο HTML
print(html_content[:500]) # Πρώτοι 500 χαρακτήρες
else:
print(f"Σφάλμα: {response.status_code}")Κεφαλίδες και ΠαράμετροιΟρισμένοι ιστότοποι εμποδίζουν bots – εμφανιστείτε σαν πραγματικός περιηγητής:headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
params = {"q": "python tutorial", "page": 1} # Παράμετροι GET
response = requests.get("https://httpbin.org/get", headers=headers, params=params)
print(response.url) # URL με παραμέτρους
print(response.json())Αίτημα POSTdata = {"username": "test", "password": "123"}
response = requests.post("https://httpbin.org/post", data=data, headers=headers)
print(response.json())2. Ανάλυση HTML με BeautifulSoupΑναλύστε το ληφθέν περιεχόμενο:from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content, "lxml") # ή "html.parser"
# Εύρεση τίτλου
title = soup.find("title")
print(title.text) # <title>Example Domain</title> -> Example Domain
# Εύρεση όλων των παραγράφων
paragraphs = soup.find_all("p")
for p in paragraphs:
print(p.text)
# Με επιλογέα CSS
links = soup.select("a[href]")
for link in links:
print(link["href"], link.text)Πραγματικό Παράδειγμα: Συλλογή Δεδομένων από Ιστότοπο ΒιβλίωνΠαράδειγμα ιστότοπου βιβλίων (σε πραγματικούς ιστότοπους, λάβετε άδεια!):import requests
from bs4 import BeautifulSoup
import time
def fetch_book_data(url):
headers = {"User-Agent": "Mozilla/5.0 ..."} # Πλήρης κεφαλίδα
response = requests.get(url, headers=headers)
if response.status_code != 200:
print("Σφάλμα!")
return []
soup = BeautifulSoup(response.text, "lxml")
books = []
for book in soup.find_all("div", class_="book-item"): # Ανάλογα με την κλάση του ιστότοπου
try:
title = book.find("h2").text.strip()
author = book.find("span", class_="author").text.strip()
price = book.find("span", class_="price").text.strip()
link = book.find("a")["href"]
books.append({
"title": title,
"author": author,
"price": price,
"link": link
})
except AttributeError:
continue
return books
# Χρήση
url = "https://examplebooksite.com/python-books"
book_list = fetch_book_data(url)
for book in book_list:
print(book)
time.sleep(2) # Σεβαστείτε, προσθέστε καθυστέρηση3. Προχωρημένες Τεχνικές• Σελιδοποίηση (Pagination):for page in range(1, 11):
url = f"https://site.com?page={page}"
# συλλογή δεδομένων
time.sleep(3) # Περιμένετε 3 δευτερόλεπτα• Αποθήκευση σε CSV (με Pandas):import pandas as pd
df = pd.DataFrame(book_list)
df.to_csv("books.csv", index=False, encoding="utf-8")
print("Το CSV αποθηκεύτηκε!")• Διαχείριση Σφαλμάτων και Proxy:try:
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(f"Σφάλμα: {e}")- Δυναμικοί Ιστότοποι (JavaScript): Το BeautifulSoup δεν αρκεί → Χρησιμοποιήστε Selenium ή Playwright.
pip install seleniumfrom selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.headless = True # Εκτέλεση στο παρασκήνιο
driver = webdriver.Chrome(options=options)
driver.get(url)
html = driver.page_source
driver.quit()Ηθικοί και Νομικοί Προειδοποιήσεις (Ενημερωμένο 2026)- Έλεγχος robots.txt:https://site.com/robots.txt (https://site.com/robots.txt)
- Μην στέλνετε υπερβολικά αιτήματα (περιορισμός ρυθμού).
- Μην συλλέγετε προσωπικά δεδομένα (συμβατότητα με GDPR/GDPR).
- Μην κατεβάζετε περιεχόμενο με πνευματικά δικαιώματα.
- Σε προστατευμένους ιστότοπους όπως το Cloudflare, η επίλυση captcha μπορεί να μην είναι νόμιμη.
Συμπέρασμα και Πρακτικές ΣυμβουλέςΤο web scraping είναι μία από τις πιο πρακτικές δεξιότητες του Python. Αφού μάθετε τα βασικά, προχωρήστε σε πραγματικά έργα:- Γράψτε σενάριο παρακολούθησης τιμών από ιστότοπο e-commerce.
- Συλλέξτε τίτλους από ιστότοπους ειδήσεων και αποθηκεύστε σε CSV.
- Αναλύστε τα δεδομένα με Pandas.
- Πηγές: Οδηγοί scraping του Real Python, τεκμηρίωση BeautifulSoup, βιβλίο "Web Scraping with Python" (Ryan Mitchell).
Με αυτόν τον οδηγό, θα έχετε κάνει μια σταθερή αρχή στο web scraping. Για προτάσεις παραδειγματικών ιστότοπων ή συγκεκριμένο έργο scraping, αφήστε σχόλιο! Το 2026, αυτές οι τεχνικές θα σας προσφέρουν μεγάλο πλεονέκτημα σε έργα συλλογής δεδομένων.