Döviz bilgisi çekmeye çalışırken hiçbir sonuç alamıyorum neden?

Kusra bakmayın ayak üstü bakabildim.

Bir kaç ihtimal var kodunuza tamamen bakmadım.

URL ={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"}

Satırı ile siteye bir başlık bigisi gönderdik. Bazan siteler başlık bilgisi olmayan istekleri cevaplamayabiliyor.

if sayfaninCevabi.status_code==200:

Kontrolünden sonra datayı çekmek istiyorsun, belki burada status kod gecikiyor yada doğru dönmüyor bakmak gerekir.

Üçüncüsü

soup.find_all("div", {"class":"dk_MC"})

ile dk_MC sınıfının tamamını çağırdım.

Siz sadece L0 a ulaşmaya çalışmışsınız.

Dördüncüsü

dovizCinsi=icerik.find("span").text

    dovizAlis=icerik.find_all("td")[1:][0].text

    dovizSatis=icerik.find_all("td")[1:][1].text

ile parse ederken sorun yaşamış olabilirsiniz. Çünkü sınıf yapısını iyi incelemek gerekiyor.

İçinde ikon listeleri de var sanırım ve alamadığında yada metne çeviremediğinde ne davranış sergiliyor bilemedim.

Yani birden çok yerde birden çok ihtimaldeki kodunuzu adım adım çalıştırıp bakmak gerekir ki, ven metin dosyasında yazıp, terminalden doğrudan çalıştırıp baktım.

import requests
from bs4 import BeautifulSoup

URL ={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"}

cagrigungor=requests.get("https://www.isbank.com.tr/doviz-kurlari",headers= URL)

sayfakaynagi=cagrigungor.content

soup=BeautifulSoup(sayfakaynagi,"html.parser")


for icerik in soup.find_all("tr", {"class":"dk_HdrTr"}):
    print (icerik.text)
    
for icerik in soup.find_all("tr", {"class":"dk_L0"}):
    
    temp= icerik.text
    print(temp.strip())
    
for icerik in soup.find_all("tr", {"class":"dk_L1"}):
    temp=icerik.text
    print(temp.strip())

Şeklinde kodu biraz daha basitleştireyim. Zaten bir kaç satır bir kod.

Burada siz icerikleri nasıl böleceğinize kendiniz karar verirsiniz.

1 Beğeni