import requests
import concurrent.futures
# requests.get isteğini fonksiyon haline getirme
def send_request(url, params):
try:
response = requests.get(url, params=params)
if response.status_code == 200:
print(params['page']) # Sayfanın numarasını yazdırma
return response.json()
else:
raise Exception(f"Statu: {response.status_code}")
except requests.exceptions.RequestException as e:
# Handle exception here if needed
print("Error:", e)
return None
def getdata(self, category):
sayfasayi = int(category["sayfasayisi"])
dusdata = []
urunler = []
# Eşzamanlı istekler için ThreadPoolExecutor oluşturma
with concurrent.futures.ThreadPoolExecutor(max_workers=sayfasayi) as executor:
# İstekleri eşzamanlı olarak gönderme
futures = {executor.submit(send_request, "https://www.test.com", {'page': str(x)}): x for x in range(1, sayfasayi+1)}
# Tamamlanan istekleri işleme
for future in concurrent.futures.as_completed(futures):
x = futures[future] # Sayfanın numarasını al
html = future.result() # İstek sonucunu al
if html:
# İşlem yapma ve urunler listesine ekleyerek devam et
for r in html['products']:
isim = r['name']
url = BASE_URL + r["url"]
urunler.append([isim, url])
# Burada json işlemi var
self.urunsayisi += len(urunler)
urunler.clear()
dusdata.clear() Bir deneyin...