B

Çözüldü Excel web sitesine veri gönderme

  • Konuyu başlatan Konuyu başlatan burak090
  • Başlangıç tarihi Başlangıç tarihi

burak090

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhabalar;

Elimde ekteki gibi bir tablom var. Burada yapmak istediğim her satırın sonuna bir tane düğme eklemek ve her satırın sonundaki düğmeye bastığımda G sütunundaki linke gidip, F sütunundaki wallet yazan değeri kopyalayıp, gittiği sitedeki alt tarafta address bölümüne kopyaladığı değeri yapıştırmasını sağlamaktır.

Bununla ilgili baya deneme yaptım. Forumlarda selenium ile yazılar da okudum fakat sonuç alamadım. Yardımlarınız için şimdiden teşekkür ediyorum.

İlgili Site;
Mecrypto Club Faucet - YTN

İlgili sitenin address bölümü elementi;
<input name="chaincoin_address" type="text" class="form-control" value="" placeholder="Enter your Yenten address here">

Örnek Dosya Linki ;
https://******/server10/yyp08t/Faucet_Ornek.xlsx.html
 
Çözüm
Ayrıca yukarıda sizin gönderinizi cevapladığım kodu göz önüne alarak bir sorum daha olacak.

Bu koddaki G2 hücresindeki site: "Mecrypto Club Faucet - YTN" şeklindedir. Bu kodu çalıştırdığımda işlemlerin sonunda x.wait (10000) komutunu çalıştırıp chrome sayfasını kapatıyor. Sayfayı x.wait(10000) komutuna göre değilde sitedeki send butonuna bastıktan örneğin 3 saniye sonra kapatabilir miyim? Bu konuda da desteğinizi rica ediyorum.

İşlemi sonlandırmadan önce, yazdırdığınız veriyi sitedeki send butonuna basılması gereken kodu yazdığınızı varsayarak, kodun hemen altına,
x.wait (3000) yazarsanız 3 saniye sonra komutu sonlandırıp tarayıcıyı kapatacaktır.

Aynı kodlama içinde farklı sayfa hareketleri varsa 5000 iyi bir değer...
Merhabalar;

Elimde ekteki gibi bir tablom var. Burada yapmak istediğim her satırın sonuna bir tane düğme eklemek ve her satırın sonundaki düğmeye bastığımda G sütunundaki linke gidip, F sütunundaki wallet yazan değeri kopyalayıp, gittiği sitedeki alt tarafta address bölümüne kopyaladığı değeri yapıştırmasını sağlamaktır.

Bununla ilgili baya deneme yaptım. Forumlarda selenium ile yazılar da okudum fakat sonuç alamadım. Yardımlarınız için şimdiden teşekkür ediyorum.

İlgili Site;
Mecrypto Club Faucet - YTN

İlgili sitenin address bölümü elementi;
<input name="chaincoin_address" type="text" class="form-control" value="" placeholder="Enter your Yenten address here">

Örnek Dosya Linki ;
https://******/server10/yyp08t/Faucet_Ornek.xlsx.html
Selamlar,

Yazdıklarınızdan konuya tam hakim olamasamda yapabilecekleriniz hakkında önerilerim olabilir.

Excel vba üzerinden çalışacaksanız, Selenium kütüphanesini ve Chrome driver'ı yükleyiniz.

Sonrasında FindElementsByXPath ile çekilecek veriyi excel'de istediğiniz yere yazdırabilirsiniz.

Eğer bu dinamik bir web sitesi ise kodlar değişkenlik göstereceği için veri çekmede sıkıntı yaşayabilirsiniz.

Bu kodu buton hale getirip güncel alandaki veriyi istediğiniz an çekip güncelleyebilirsiniz.

Sub deneme()

Dim veri As New Selenium.WebDriver

veri.SetProfile "C:\Users\.....\AppData\Local\Google\Chrome\User Data\Default", True

veri.Start "Chrome"

veri.Get "veri çekilecek web sitesi"
veri.Wait 2000

Dim listeler As Selenium.WebElements
Dim liste As Selenium.WebElement

Set listeler = veri.FindElementsByXPath("çekilecek verinin xpath yolu")
For Each liste In listeler

liste.AsTable.ToExcel ThisWorkbook.Worksheets.Add.Range("verinin yazdırılacağı hücre adı")


Next

End Sub

Bu kod ile de python kullanarak web sitesine veri gönderebilirsiniz.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdrivermanager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

import os, sys
import time,requests
from bs4 import BeautifulSoup

header = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36"
}

path = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(path)

driver.get("veri girilecek web sitesi")

username = driver.find_element_by_id("doldurulacak alanın id adı")
username.send_keys("doldurulacak alana yazılmak istenen metin")
Aynı kod VBA ya uyarlanabilir.

Açıkcası ben Excel hakkında çok bilgi sahibi değilim.

Çektiğim verileri ilgili yerlere aktarma konusunda bilgi eksikliğim bulunuyor.

Fakat burada ki değerli arkadaşlar sayesinde excel'de yapmak istediğim şeyleri eksiksiz halledebiliyorum.

İşlemleri yaparken sıkıntı yaşarsanız youtube WiseOwlTutorials araması yaparsanız çok daha detaylı bilgiye ulaşabilirsiniz.

İyi çalışmalar 🖐
 
Selamlar,

Yazdıklarınızdan konuya tam hakim olamasamda yapabilecekleriniz hakkında önerilerim olabilir.

Excel vba üzerinden çalışacaksanız, Selenium kütüphanesini ve Chrome driver'ı yükleyiniz.

Sonrasında FindElementsByXPath ile çekilecek veriyi excel'de istediğiniz yere yazdırabilirsiniz.

Eğer bu dinamik bir web sitesi ise kodlar değişkenlik göstereceği için veri çekmede sıkıntı yaşayabilirsiniz.

Bu kodu buton hale getirip güncel alandaki veriyi istediğiniz an çekip güncelleyebilirsiniz.



Bu kod ile de python kullanarak web sitesine veri gönderebilirsiniz.

Aynı kod VBA ya uyarlanabilir.

Açıkcası ben Excel hakkında çok bilgi sahibi değilim.

Çektiğim verileri ilgili yerlere aktarma konusunda bilgi eksikliğim bulunuyor.

Fakat burada ki değerli arkadaşlar sayesinde excel'de yapmak istediğim şeyleri eksiksiz halledebiliyorum.

İşlemleri yaparken sıkıntı yaşarsanız youtube WiseOwlTutorials araması yaparsanız çok daha detaylı bilgiye ulaşabilirsiniz.

İyi çalışmalar 🖐
Değerli bilgileriniz için teşekkür ediyorum. Selenium Basic ile

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(13 satır)

Şeklinde çözüme ulaştım.
 
Selamlar,

Yazdıklarınızdan konuya tam hakim olamasamda yapabilecekleriniz hakkında önerilerim olabilir.

Excel vba üzerinden çalışacaksanız, Selenium kütüphanesini ve Chrome driver'ı yükleyiniz.

Sonrasında FindElementsByXPath ile çekilecek veriyi excel'de istediğiniz yere yazdırabilirsiniz.

Eğer bu dinamik bir web sitesi ise kodlar değişkenlik göstereceği için veri çekmede sıkıntı yaşayabilirsiniz.

Bu kodu buton hale getirip güncel alandaki veriyi istediğiniz an çekip güncelleyebilirsiniz.



Bu kod ile de python kullanarak web sitesine veri gönderebilirsiniz.

Aynı kod VBA ya uyarlanabilir.

Açıkcası ben Excel hakkında çok bilgi sahibi değilim.

Çektiğim verileri ilgili yerlere aktarma konusunda bilgi eksikliğim bulunuyor.

Fakat burada ki değerli arkadaşlar sayesinde excel'de yapmak istediğim şeyleri eksiksiz halledebiliyorum.

İşlemleri yaparken sıkıntı yaşarsanız youtube WiseOwlTutorials araması yaparsanız çok daha detaylı bilgiye ulaşabilirsiniz.

İyi çalışmalar 🖐
Ayrıca yukarıda sizin gönderinizi cevapladığım kodu göz önüne alarak bir sorum daha olacak.

Bu koddaki G2 hücresindeki site: "Mecrypto Club Faucet - YTN" şeklindedir. Bu kodu çalıştırdığımda işlemlerin sonunda x.wait (10000) komutunu çalıştırıp chrome sayfasını kapatıyor. Sayfayı x.wait(10000) komutuna göre değilde sitedeki send butonuna bastıktan örneğin 3 saniye sonra kapatabilir miyim? Bu konuda da desteğinizi rica ediyorum.
 
Ayrıca yukarıda sizin gönderinizi cevapladığım kodu göz önüne alarak bir sorum daha olacak.

Bu koddaki G2 hücresindeki site: "Mecrypto Club Faucet - YTN" şeklindedir. Bu kodu çalıştırdığımda işlemlerin sonunda x.wait (10000) komutunu çalıştırıp chrome sayfasını kapatıyor. Sayfayı x.wait(10000) komutuna göre değilde sitedeki send butonuna bastıktan örneğin 3 saniye sonra kapatabilir miyim? Bu konuda da desteğinizi rica ediyorum.

İşlemi sonlandırmadan önce, yazdırdığınız veriyi sitedeki send butonuna basılması gereken kodu yazdığınızı varsayarak, kodun hemen altına,
x.wait (3000) yazarsanız 3 saniye sonra komutu sonlandırıp tarayıcıyı kapatacaktır.

Aynı kodlama içinde farklı sayfa hareketleri varsa 5000 iyi bir değer olacaktır. Çünkü bir çok web sitesi bot yazılımlara karşı korumalıdır.
Bir insanın hareket ve hız kabiliyetleri bellidir. Bu beklemeler insan hareketlerini bir nebze olsun taklit etmek içindir.

Yukarıya yazdığım şu kod, karşı sisteme tarayıcınızın bot değil de, normal bir pc gibi çalıştığını gösterir. Kullanmakta fayda var.

x.SetProfile "C:\Users\.....\AppData\Local\Google\Chrome\User Data\Default", True

Python için;

header = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36"}

İyi çalışmalar 🖐
 
Çözüm
İşlemi sonlandırmadan önce, yazdırdığınız veriyi sitedeki send butonuna basılması gereken kodu yazdığınızı varsayarak, kodun hemen altına,
x.wait (3000) yazarsanız 3 saniye sonra komutu sonlandırıp tarayıcıyı kapatacaktır.

Aynı kodlama içinde farklı sayfa hareketleri varsa 5000 iyi bir değer olacaktır. Çünkü bir çok web sitesi bot yazılımlara karşı korumalıdır.
Bir insanın hareket ve hız kabiliyetleri bellidir. Bu beklemeler insan hareketlerini bir nebze olsun taklit etmek içindir.

Yukarıya yazdığım şu kod, karşı sisteme tarayıcınızın bot değil de, normal bir pc gibi çalıştığını gösterir. Kullanmakta fayda var.



Python için;



İyi çalışmalar 🖐
İşlemi sonlandırmadan önce, yazdırdığınız veriyi sitedeki send butonuna basılması gereken kodu yazdığınızı varsayarak,
Aslında bu kodu nasıl yazabileceğimi kestiremiyorum. Bu konuda yardımcı olursanız sevinirim.

Yani site açılacak, otomatik adresi yazacak, ben elle recaptcha yi yapıp send e bastıktan sonra 3 veya 5 saniye sonra site kendiliğinden kapanacak. Planladığım kurgu bu.
 
Aslında bu kodu nasıl yazabileceğimi kestiremiyorum. Bu konuda yardımcı olursanız sevinirim.

Yani site açılacak, otomatik adresi yazacak, ben elle recaptcha yi yapıp send e bastıktan sonra 3 veya 5 saniye sonra site kendiliğinden kapanacak. Planladığım kurgu bu.
Öncelikle send butonunun html karşılığını bulunuz.

Butona tıklamak için iki yöntem kullanabilirsiniz.

FindElementByCss;
x.FindElementByCss("butonun css bilgisini içeren alan adı").Click

Bir diğeri;
FindElementByXPath
x.("butonun xpath yolu").Click

Sonrasına ekleyeceğiniz kod ile 3 yada 5 sn içinde komutu sonlandırabilirsiniz.

Ayrıca python kullanarak recaptcha alanını da otomasyon şeklinde geçebilirsiniz. Fakat uğraştırıcı bir iştir. Sabır gerektirir :)

İyi çalışmalar 🖐
 
Üst