import requests
from bs4 import BeautifulSoup
import csv
# Fonksiyonu tanımlayın
def scrape_and_save(url, page_num):
# İstek gönderin
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
# CSV dosyasını açın ve yazıcıyı tanımlayın
with open(f"sayfa_{page_num}.csv", mode="w", encoding="utf-8", newline="") as file:
writer = csv.writer(file)
writer.writerow(["Dizi/Film Adı", "Bölüm Sayısı", "Yayın Yılı", "Konusu"]) # Sütun başlıkları
# Dizi/Film başlıklarını bulun
titles = soup.find_all("h6", class_="text-primary")
for title in titles:
drama_title = title.get_text(strip=True)
drama_link = title.a["href"]
drama_response = requests.get("https://mydramalist.com" + drama_link)
drama_soup = BeautifulSoup(drama_response.content, "html.parser")
details = drama_soup.find_all("li", class_="p-a-0")
episodes = "N/A"
aired = "N/A"
for detail in details:
label = detail. Find("b", class_="inline").get_text(strip=True)
if label == "Episodes:":
episodes = detail.get_text(strip=True).split(':')[1].strip()
elif label == "Aired:":
aired = detail.get_text(strip=True).split(':')[1].strip()
summary = drama_soup.find("div", class_="show-synopsis").get_text(strip=True)
# Elde edilen verileri CSV dosyasına yazın
writer.writerow([drama_title, episodes, aired, summary])
# Başlangıç URL'si
base_url = "https://mydramalist.com/search?adv=titles&ty=68&co=3&re=2020,2024&so=date&page="
# Her sayfa için işlem yapın ve veriyi CSV'ye kaydedin
for page_num in range(1, 4): # Örnek olarak 3 sayfa alacağız
url = base_url + str(page_num)
scrape_and_save(url, page_num)Bu şekilde mi olması gerekiyor? Hata verdi de.
. Find olmuş kodda da öyle mi? detail.find olacak