Selam !
pthon programlama dili kullanarak veri kazıma konusunda bilgi paylaşmak istedim. Malum artık petrol veri oldu.
Veri kazıma, web sitelerinden veya diğer çevrimiçi kaynaklardan veri çekmek için kullanılan güçlü bir tekniktir.
Bu yöntemle, web sitelerindeki metinleri, resimleri, tabloları veya diğer verileri çekebilir ve analiz edebiliriz.
Çektiğimiz bilgiler "data.csv" olarak kayıt ediyor hedef sitenizi ve hedef "data= []" kısmını değiştirip kullanabilirsiniz
proxy kullanmazsanız atıyorum 5 dakika 1 dakika uyku ekliyebilirsiniz, gereğinden fazla istek ban sebebi olabilir.
Veri kazıma işlemleri için Python'da kullanılan popüler kütüphaneler arasında Beautiful Soup ve Requests bulunmaktadır. Beautiful Soup, HTML ve XML belgelerini analiz etmek için kullanılırken, Requests kütüphanesi web sayfalarını indirmek için kullanılır.Timezaman modülümü proxy denemek için kullanıldu
Random modülü proxy secımı yapıcak
pthon programlama dili kullanarak veri kazıma konusunda bilgi paylaşmak istedim. Malum artık petrol veri oldu.
Veri kazıma, web sitelerinden veya diğer çevrimiçi kaynaklardan veri çekmek için kullanılan güçlü bir tekniktir.
Bu yöntemle, web sitelerindeki metinleri, resimleri, tabloları veya diğer verileri çekebilir ve analiz edebiliriz.
Çektiğimiz bilgiler "data.csv" olarak kayıt ediyor hedef sitenizi ve hedef "data= []" kısmını değiştirip kullanabilirsiniz
proxy kullanmazsanız atıyorum 5 dakika 1 dakika uyku ekliyebilirsiniz, gereğinden fazla istek ban sebebi olabilir.
Veri kazıma işlemleri için Python'da kullanılan popüler kütüphaneler arasında Beautiful Soup ve Requests bulunmaktadır. Beautiful Soup, HTML ve XML belgelerini analiz etmek için kullanılırken, Requests kütüphanesi web sayfalarını indirmek için kullanılır.Timezaman modülümü proxy denemek için kullanıldu
Random modülü proxy secımı yapıcak
Kod:
import requests
from bs4 import BeautifulSoup
import csv
import time
import logging
import random
#Hedef sitemiz
url = "https://mekatronik.org/forum/"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive",
"Upgrade-Insecure-Requests": "1"
}
#proxy kullanmak iyidir sitelerin çoğu banlıyor
proxy_list = [
'http://1.1.1.1:1234',
'http://2.2.2.2:5678',
'http://3.3.3.3:9012',
]
logging.basicConfig(filename="scraper.log", level=logging.ERROR)
session = requests.Session()
try:
response = session.get(url, headers=headers)
response.raise_for_status() # Raise an exception if the response is not OK
soup = BeautifulSoup(response.text, "html.parser")
except Exception as e:
logging.error(f"Error on initial request: {e}")
raise
#CAPTCHA varsa çözsün
if "captcha" in response.text:
solver = CaptchaSolver("captcha_service_api_key")
captcha_url = soup.find("img", class_="captcha-image").get("src")
captcha_text = pytesseract.image_to_string(captcha_image)
form_data["captcha"] = captcha_text.strip()
try:
total_pages = int(soup.find("span", class_="total-pages").text)
except Exception as e:
logging.error(f"Error finding total pages: {e}")
raise
data = []
for page in range(1, total_pages + 1):
try:
params = {"page": page}
response = session.get(url, headers=headers, params=params)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
for person in soup.find_all("div", class_="person"):
email = person.find("a", class_="email").text.strip()
name = person.find("span", class_="name").text.strip()
surname = person.find("span", class_="surname").text.strip()
company = person.find("span", class_="company").text.strip()
data.append([email, name, surname, company])
time.sleep(random.uniform(1, 5))
except Exception as e:
logging.error(f"Error on page {page}: {e}")
continue
# CSV kayıt kodu
try:
with open("data.csv", "w", newline="") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["Email", "Name", "Surname", "Company"])
writer.writerows(data)
except Exception as e:
logging.error(f"Error saving data to CSV: {e}")
raise
Son düzenleme: