# -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup from csv import writer import pandas as pd # Web sayfasından verileri çekme header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"} otk = requests.get("https://odtuteknokent.com.tr/tr/firmalar/tum-firmalar.php", headers=header) req1 = BeautifulSoup(otk.text, "html.parser") sonuc = req1.tbody firmalar = sonuc.find_all("tr") # Verileri CSV dosyasına yazma try: with open('firmalar.csv', 'w', newline='', encoding='utf-8') as csv_file: csv_writer = writer(csv_file) csv_writer.writerow(['FIRMA', 'WEB']) # Başlıkları ekleyin for firma in firmalar: firma_ismi = firma.find("td").text.strip() # Kullanıcıdan gelen HTML içeriğini temizleyin firma_web = firma.find("a")["href"] csv_writer.writerow([firma_ismi, firma_web]) except Exception as e: print(e) # CSV dosyasını okuyarak DataFrame oluşturma columns = ['FIRMA', 'WEB'] dffirmalar = pd.read_csv("firmalar.csv", names=columns, header=0, sep=",", encoding="utf-8") # Excel dosyasına yazma with pd.ExcelWriter("OTK_FirmaListesi.xlsx", engine='openpyxl') as writer: dffirmalar.to_excel(writer, sheet_name="OTK_Firmalar", index=False) worksheet = writer.sheets["OTK_Firmalar"] # Dinamik olarak sütun genişliğini ayarlama for i, col in enumerate(dffirmalar.columns): column_len = max(dffirmalar[col].astype(str).str.len().max(), len(col) + 2) worksheet.column_dimensions[chr(65 + i)].width = column_len # Auto filter ve freeze panes ekleme worksheet.auto_filter.ref = worksheet.dimensions worksheet.freeze_panes = worksheet['A2']