• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Selenium ile web sitesinden veri çekme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Safih00

Yeni Üye
Katılım
6 May 2022
Mesajlar
35
Aldığı beğeni
2
Excel V
Office 2013 TR
Herkese merhaba;
Ben şöyle bir proje yapmak istiyorum mümkün müdür acaba.

Excelde örnek olarak A sütununda veriler var bu veriler QR Code olacak ve bu verilerin satır sayısı değişebilir, 4 de olabilir 10 da.
internet sitesi vermek yasak mı bilmiyorum eğer yasak değilse tam benim istediğim formata uygun olarak qr indirilebilcek bir site biliyorum.

A sütununda ne kadar veri varsa o siteye girip istediğim şekilde satırları tek tek indirmesini istiyorum mümkün müdür acaba.
 

Ekli dosyalar

Çözüm
Önce Selenium indirin sonra chrome 64b için ChromeDriver İndirin eğer 32b kullanıyorsanız 32b driver indirin ve kurun. Bilgisayarınızda C:\Users\KullanıcıAdı\AppData\Local\SeleniumBasic dosyasını bulun ve indirdiğiniz 32 yada 64b chrome driverini bu klasöre kopyalayın. Aşağıda ki kodu bir modüle yapıştırın. VBA penceresinde Tools kısmında referanslar seçeneklerinde Selenium type library seçeneği işaretli olmalı. Eğer her şey düzgün yapılandırılmış ise QrCode larınız PNG olarak İndirilenler(Downloads) klasöründe görebilirsiniz.
Kod:
Option Explicit

Sub QRKodIndir()
    Dim driver As New Selenium.WebDriver
    Dim qrText As Object
    Dim createQRBtn As Object
    Dim...
Önce Selenium indirin sonra chrome 64b için ChromeDriver İndirin eğer 32b kullanıyorsanız 32b driver indirin ve kurun. Bilgisayarınızda C:\Users\KullanıcıAdı\AppData\Local\SeleniumBasic dosyasını bulun ve indirdiğiniz 32 yada 64b chrome driverini bu klasöre kopyalayın. Aşağıda ki kodu bir modüle yapıştırın. VBA penceresinde Tools kısmında referanslar seçeneklerinde Selenium type library seçeneği işaretli olmalı. Eğer her şey düzgün yapılandırılmış ise QrCode larınız PNG olarak İndirilenler(Downloads) klasöründe görebilirsiniz.
Kod:
Option Explicit

Sub QRKodIndir()
    Dim driver As New Selenium.WebDriver
    Dim qrText As Object
    Dim createQRBtn As Object
    Dim downloadBtn As Object
    Dim closePopup As Object
    Dim i As Integer
    Dim sonSatir As Integer
    Dim veri As String
    
    ' Chrome Başlat ve Siteye Gir
    driver.Start "chrome", "https://www.qrcode-monkey.com"
    driver.SetCapability "excludeSwitches", Array("enable-automation")
    driver.Get "/"
    
    Application.Wait Now + TimeValue("00:00:03") ' 3 saniye bekle (sayfanın yüklenmesi için)

    ' Çerezleri kabul et (Eğer buton varsa)
    On Error Resume Next
    Set closePopup = driver.FindElementById("onetrust-accept-btn-handler")
    If Not closePopup Is Nothing Then closePopup.Click
    On Error GoTo 0
    
    ' "Text" sekmesine tıkla
    driver.FindElementByXPath("//a[@href='#text']").Click
    Application.Wait Now + TimeValue("00:00:02")

    ' A Sütunundaki Son Satırı Bul
    sonSatir = Cells(Rows.Count, 1).End(xlUp).Row
    
    ' A Sütunundaki Her Veriyi QR Koda Dönüştür
    For i = 2 To sonSatir
        veri = Cells(i, 1).Value
        
        ' QR kod metin alanını bul ve veri gir
        Set qrText = driver.FindElementById("qrcodeText")
        qrText.Clear
        qrText.SendKeys veri
        Application.Wait Now + TimeValue("00:00:01")
        
        ' "Create QR Code" butonuna tıkla
        Set createQRBtn = driver.FindElementById("button-create-qr-code")
        createQRBtn.Click
        Application.Wait Now + TimeValue("00:00:03") ' QR kodun yüklenmesi için bekle

        '  "Download PNG" butonuna tıkla
        Set downloadBtn = driver.FindElementById("button-download-qr-code-png")
        downloadBtn.Click
        Application.Wait Now + TimeValue("00:00:10") ' İndirme işleminin başlaması için bekle

        '  Açılan pop-up'ı kapat
        On Error Resume Next
        Set closePopup = driver.FindElementByXPath("//i[@ng-click='closeDownloadModal()']")
        If Not closePopup Is Nothing Then closePopup.Click
        On Error GoTo 0
        
        Application.Wait Now + TimeValue("00:00:03") ' Sonraki işleme geçmeden önce bekle
    Next i
    
    ' Tarayıcıyı Kapat
    driver.Quit
    MsgBox "Tüm QR kodları indirildi!", vbInformation
End Sub
 

Ekli dosyalar

Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst