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

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