Bs4 ve requests ile istediğim kısmın verisini çekemedim

Dediğin gibi farklı bir yerden yaptım ve çıktı bu


BORSA


Canlı Borsa


Günün Özeti


Raporlar


Endeksler


Hisselerim


Hisse Fiyatları


Hisse Senetleri


Geçmiş Kapanışlar


En Çok Tıklanan Hisseler


En Çok Artan/Azalanlar


Yatırım Araçlarının Getirileri


Dünya Borsaları


DÖVİZ


Döviz Kuru


Dolar


Dolar Endeksi


Euro


İngiliz Sterlini


Kanada Doları


Avustralya Doları


İsviçre Frangı


İsveç Kronu


Norveç Kronu


Danimarka Kronu


Japon Yeni


Suudi Arabistan Riyali


Pariteler


Merkez Bankası Verileri


ALTIN


Altın Fiyatları


Çeyrek Altın


Yarım Altın


Cumhuriyet Altını


22 Ayar Bilezik


Gram Altın


Altın (ONS)


Altın ($/kg)


Altın (Euro/kg)


FAİZLER


Faiz Haberleri


Kredi Faiz Oranları


Tahvil Bono Repo


Banka Şubeleri


Mevduat Faiz Getirileri


VIOP&VARANT



Varant/VIOP Videolari


Canlı Varant Verileri



HABERLER


Borsa Haberleri


Döviz Haberleri


Altın Haberleri


Ekonomi Haberleri


Piyasa Haberleri


Politika Haberleri


Teknoloji Haberleri


KOBİ Haberleri


KAP Haberleri


Hisse Yorumları


Haber Yorumları


Haber Gündem


En Çok Okunanlar


Aracı Kurum Görüşleri


Enflasyon Verileri


Piyasa Takvimi


Videolar


Bigpara Yazarları


ANALİZ


Araştırma Analizi


Otomatik Al-Sat


Ağırlıklı Ortalama Analizi


Dip Zirve Analizleri


İşlem Hacmi Analizleri


Sektör Takip


Performans Analizi


Yatırım Simulatörü


Seans Raporu


Teknik Analiz


Otomatik Teknik Yorumlar


Teknik Grafik


Teknik Sinyal Listesi


Teknik Analiz Modülü


Artan Azalan Endeksi


Temel Analiz


Mali Tablolar


Oran Analizleri


Risk Getiri Tablosu


Yatırım Ortaklıkları Analizi


BES


KOBİ



Şirket Haberleri


Bankacılık Haberleri


Girişim Haberleri


Teşvik Haberleri


Sektör Haberleri


Dünya Emtia Borsaları


KRİPTO PARALAR


Bitcoin Haberleri


PORTFÖYÜM


Bigpara


Döviz Kuru


Dolar


PAYLAŞ



kez paylaşıldı


0


yorum


ALIŞ(TL)


7,9147


SATIŞ(TL)


7,9212


ÖNCEKİ KAPANIŞ


7,9179


-0,14 %































Bilgi


Uzmanlardan 'AL’ınabilecek 22 hisse önerisi


Türkiye’nin en çok ihracat yaptığı 20 ülke


Türkiye’nin en çok ithalat yaptığı 20 ülke


Tümünü Göster



Dolar kurunda son durum



Dolar fiyatlarında son durum



Dolar fiyatlarında son durum



Dolar fiyatlarında son durum



Dolar kurunda son durum



Dolar kurunda son durum



AB’nin dış ticaretinde Kovid-19 etkisi sürüyor



New York borsası yükselişle açıldı



Borsa İstanbul ‘Dünyanın En Hızlı Büyüyen Borsası’ oldu



Turkcell’in Genel Kurulu 21 Ekim’de yapılacak



Bakan Albayrak: 10 milyar TL’lik destek paketini devreye alıyoruz



İşte ekonomistlerin TCMB faiz kararı beklentisi


            Veri politikasındaki amaçlarla sınırlı ve mevzuata uygun şekilde çerez konumlandırmaktayız. Detaylar için veri politikamızı inceleyebilirsiniz.

NETWORK







bigpara



Alış fiyatı görünüyor görmüş olduğun gibi ancak ben sadece alış fiyatını çekmek istersem ne yapmam gerekiyor bir bilgin var mı ?

Kodlar da bu şekilde

from bs4 import BeautifulSoup
import requests

url = "http://bigpara.hurriyet.com.tr/doviz/dolar/"

response = requests.get(url)

html = response.content
soup = BeautifulSoup(html,"html.parser")

#dediğim gibi span yazıca bu sefer görünüyor.
#<span class="value dw">7,9146</span>
#bu ss'te gördüğün Türk Lirasının değerini ifade ediyor.
#Ben sadece buradaki kısmı çekmek istiyorum. Tıpkı bu şekilde yazınca olmuyor ama.
#ne yapmam lazım ?
for i in soup.find_all('span'):
    
    print(i.text)
    print("*****************************")



Website içerisinde denildiği gibi tek bir tane span bulunmuyor birden fazla bulunduğu için class belirtmeniz gerekmektedir.

import requests
from bs4 import BeautifulSoup


deneme = requests.get("https://www.sozcu.com.tr/doviz-hesapla/")

soup = BeautifulSoup(deneme.text, 'html.parser')

dolar = soup.find_all('div', class_ = '_dh-result')

print(dolar)

#Output:
#[<div class="_dh-result"> 7.934 TL </div>]

Re modülü ile sadece yazı olan kısımları ayırırsınız o kısmını ellemiyorum.

1 Beğeni

Ekran görüntüsü 2020-10-17 130409

Söylediğiniz gibi şöyle yaptım

for i in soup.findAll('span', class_ = 'value up'):
    
    print(i.text)
    print("*****************************")

Bu sefer oldu. Alış ve satış fiyatını çekebildim. Ancak sadece alış fiyatını çekmek istersem nasıl olacak?
Bunun için attığım ss’te gördüğünüz texti girmeye çalıştım yani şöyle

for i in soup.findAll('span', class_ = 'value up',text='ALIŞ(TL)'):

herhangi bir syntax vb. hata olmadı. Ancak istediğim span kısmını çekemedi yani alış kısmını çekemedi.

Yanlış mı yazdım nasıl olması lazımdı ?

Bu olmayınca bahsettiğiniz re modülünü biraz kurcalamaya çalıştım.

a = re.search("ALIŞ(TL)")

    

    print(a)

Modülü bilmiyorum. Biraz araştırıp kurcalamaya çalıştım dediğim gibi fakat sanırım yanlış kullandım.

tamam başka bir şekilde hallettim şuanda. Teşekkür ederim :heart:

1 Beğeni

abi kodun son hali ne ve bu kod dolar değiştikçe güncelleniyor mu @DrShahinstein

kodun son hali bu istersen kullanırsın.

Designer kodları :

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 681)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.commandLinkButton = QtWidgets.QCommandLinkButton(self.centralwidget)
        self.commandLinkButton.setGeometry(QtCore.QRect(220, 40, 291, 61))
        self.commandLinkButton.setStyleSheet("font: 75 12pt \"MS Shell Dlg 2\";\n"
"font: 75 28pt \"MS Shell Dlg 2\";")
        self.commandLinkButton.setObjectName("commandLinkButton")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(360, 190, 71, 21))
        self.label_2.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";")
        self.label_2.setText("")
        self.label_2.setObjectName("label_2")
        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setGeometry(QtCore.QRect(40, 150, 721, 91))
        self.groupBox.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.groupBox.setObjectName("groupBox")
        self.label = QtWidgets.QLabel(self.groupBox)
        self.label.setGeometry(QtCore.QRect(60, 40, 101, 21))
        self.label.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";\n"
"font: 18pt \"MS Shell Dlg 2\";")
        self.label.setObjectName("label")
        self.label_3 = QtWidgets.QLabel(self.groupBox)
        self.label_3.setGeometry(QtCore.QRect(290, 40, 101, 21))
        self.label_3.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";\n"
"font: 18pt \"MS Shell Dlg 2\";")
        self.label_3.setText("")
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(self.groupBox)
        self.label_4.setGeometry(QtCore.QRect(520, 40, 101, 21))
        self.label_4.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";\n"
"font: 18pt \"MS Shell Dlg 2\";")
        self.label_4.setObjectName("label_4")
        self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox_2.setGeometry(QtCore.QRect(40, 250, 721, 91))
        self.groupBox_2.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.groupBox_2.setObjectName("groupBox_2")
        self.label_5 = QtWidgets.QLabel(self.groupBox_2)
        self.label_5.setGeometry(QtCore.QRect(60, 40, 101, 21))
        self.label_5.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";\n"
"font: 18pt \"MS Shell Dlg 2\";")
        self.label_5.setObjectName("label_5")
        self.label_6 = QtWidgets.QLabel(self.groupBox_2)
        self.label_6.setGeometry(QtCore.QRect(290, 40, 101, 21))
        self.label_6.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";\n"
"font: 18pt \"MS Shell Dlg 2\";")
        self.label_6.setText("")
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.groupBox_2)
        self.label_7.setGeometry(QtCore.QRect(520, 40, 101, 21))
        self.label_7.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";\n"
"font: 18pt \"MS Shell Dlg 2\";")
        self.label_7.setObjectName("label_7")
        self.groupBox_3 = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox_3.setGeometry(QtCore.QRect(40, 350, 721, 91))
        self.groupBox_3.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.groupBox_3.setObjectName("groupBox_3")
        self.label_8 = QtWidgets.QLabel(self.groupBox_3)
        self.label_8.setGeometry(QtCore.QRect(30, 40, 131, 21))
        self.label_8.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";\n"
"font: 18pt \"MS Shell Dlg 2\";")
        self.label_8.setObjectName("label_8")
        self.label_9 = QtWidgets.QLabel(self.groupBox_3)
        self.label_9.setGeometry(QtCore.QRect(290, 40, 101, 21))
        self.label_9.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";\n"
"font: 18pt \"MS Shell Dlg 2\";")
        self.label_9.setText("")
        self.label_9.setObjectName("label_9")
        self.label_10 = QtWidgets.QLabel(self.groupBox_3)
        self.label_10.setGeometry(QtCore.QRect(520, 40, 101, 21))
        self.label_10.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";\n"
"font: 18pt \"MS Shell Dlg 2\";")
        self.label_10.setObjectName("label_10")
        self.calendarWidget = QtWidgets.QCalendarWidget(self.centralwidget)
        self.calendarWidget.setGeometry(QtCore.QRect(10, 450, 771, 211))
        self.calendarWidget.setObjectName("calendarWidget")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.commandLinkButton.setText(_translate("MainWindow", "Hesap Makinesi"))
        self.groupBox.setTitle(_translate("MainWindow", "$"))
        self.label.setText(_translate("MainWindow", "1 DOLAR"))
        self.label_4.setText(_translate("MainWindow", "TL"))
        self.groupBox_2.setTitle(_translate("MainWindow", "€"))
        self.label_5.setText(_translate("MainWindow", "1 EURO"))
        self.label_7.setText(_translate("MainWindow", "TL"))
        self.groupBox_3.setTitle(_translate("MainWindow", "GAUTRY"))
        self.label_8.setText(_translate("MainWindow", "1 GR ALTIN"))
        self.label_10.setText(_translate("MainWindow", "TL"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())


Yapılandırma Kodları :

from PyQt5.QtWidgets import *
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import os
import Doviz
import requests
from bs4 import BeautifulSoup


class Pencere(QMainWindow, Doviz.Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.commandLinkButton.pressed.connect(self.clb)
        
        url = "https://www.sozcu.com.tr/doviz-hesapla/"
        r = requests.get(url)
        source = BeautifulSoup(r.content,"html.parser")     
        self.mydata = source.find('div',class_ = "_dh-result")
        text = self.mydata.text
        willad = text[:len(text)-3]
        self.label_3.setText(willad)   
         
        url2 = "https://www.sozcu.com.tr/doviz-hesapla/1-euro-ne-kadar"
        r2 = requests.get(url2)
        source2 = BeautifulSoup(r2.content,"html.parser")
        self.mydata2 = source2.find('div',class_ = "_dh-result")
        text2 = self.mydata2.text
        willad2 = text2[:len(text2)-3]
        self.label_6.setText(willad2)  
        
        url3 = "https://www.sozcu.com.tr/doviz-hesapla/1-gr-altin-ne-kadar"
        r3 = requests.get(url3)
        source3 = BeautifulSoup(r3.content,"html.parser")
        self.mydata3 = source3.find('div',class_ = "_dh-result")
        text3 = self.mydata3.text
        willad3 = text3[:len(text3)-3]
        self.label_9.setText(willad3) 
        
    

    def clb(self):
        os.startfile("C:/Users/taylan öztürk/Desktop/Projelerim/dist/hesapmakinem.exe")
        
        
        
        

        
app = QApplication(sys.argv)
pencere = Pencere()
pencere.setWindowTitle("Döviz")
pencere.move(435,100)
pencere.show()
sys.exit(app.exec_())
        
        

Çalıştırdığında üstte bir hesap makinesi command link buttonu olacak.
Ona basarsan çalışmaz çünkü hesap makinesini atmadım.

Ona şuradan erişip kurabilirsin --> PyQT5 ile Yapilmis Hesap Makinesi

Ha bu arada evet Sozcu sitesinde güncellendikçe buradaki veriler de güncellenecektir anbean.

abi sen arayüzü pyqt ile yapmadın mı yoksa tüm kodları kendin mi yazdın

arayüzü designer ile yaptım

tamamdır abi bende kullanıyım dinamik arayüz mü bu

çok güzel olmuş abi ide açılsın bi de ben açıyım

Taylan abi benim burayı değiştirmem gerekli değil mi @DrShahinstein

abi neden bende bu hata geldi

Traceback (most recent call last):
  File "C:/Users/Güçlü/Desktop/EBA CANLI DERS FATİH İÇİN İNDİRİLENLER/BİLGİSAYAR/PyQt5 Arayüz Tasarımı/kurlar.py", line 6, in <module>
    import Doviz
ImportError: No module named 'Doviz'

pip install Doviz gibi bi şey mi yazım cmd ye
@DrShahinstein @DrShahinstein @DrShahinstein

Birden fazla dosyadan oluşan bir projeyi paylaşacaksanız Github gibi bir yer kullanmanız daha iyi olur.

@Ismet_Fatih evet OS kısmını kendine göre değiştirmen lazım.
Ancak çalışmaz zaten. Önce hesap makinesini kurman lazım. Onun linkini de yukarlarda bir yerlerde bıraktım.
Kurduktan sonra onu exe’ye çevir ve
OS. Startfile kısmına o exe dosyasının yolunu gireceksin

designer ve yapılandırma dosyalarının aynı dizinde olduğuna dikkat et.
Designer dosyasının ismini Doviz. Py
Yapacaksın.
Yapılandırma dosyasının ismini de Döviz. Py yapacaksın.

Dosya isimlerini de değiştirme bu arada

Haklısınız fakat zaten en başta paylaşma gibi bir niyetim yoktu.
@Ismet_Fatih bakmak istediği için burada anlattım.

Abi bende değerler gözükmüyor 1$ kaç TL yi yazmıyor

Designer kodlarını başlattıysan yazmaz.

Hayır yapılandırma kodlarını başlattım diyorsan sana attığım kodları kontrol et.

Yukarlarda sana kodları bırakırken hangisinin designer hangisinin yapılandırma olduğunu gösterdim.

@Unnick
abi yaptım normalde döviz var ya onu idle ya da ide ile açtığımda request modülü yok diyor
pip install request mi yapıyım

Evet sende yüklü değilmiş demek ki