Φόρουμ μαθημάτων λογισμικού και Τεχνολογίας

Εκμάθηση λογισμικού => Python => να ξεκίνησε π: Sevfa στις Μαρ 21, 2026, 10:18

Τίτλ: Web Scraping στο Python: Requests και BeautifulSoup για Συλλογή Δεδομένων - 2026
Αποσλή από: 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)

Εγκατάσταση
Στο τερματικό:

Κώδικας [Επιογή]
pip install requests beautifulsoup4 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())

Αίτημα POST

Κώδικας [Επιογή]
data = {"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}")


Κώδικας [Επιογή]
pip install selenium
Κώδικας [Επιογή]
from 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)

Συμπέρασμα και Πρακτικές Συμβουλές
Το web scraping είναι μία από τις πιο πρακτικές δεξιότητες του Python. Αφού μάθετε τα βασικά, προχωρήστε σε πραγματικά έργα:
Με αυτόν τον οδηγό, θα έχετε κάνει μια σταθερή αρχή στο web scraping. Για προτάσεις παραδειγματικών ιστότοπων ή συγκεκριμένο έργο scraping, αφήστε σχόλιο! Το 2026, αυτές οι τεχνικές θα σας προσφέρουν μεγάλο πλεονέκτημα σε έργα συλλογής δεδομένων.