Merhaba, Aklınızda yapmak istediğinizi söylerseniz buradan güzel bir proje çıkabilir. Özellikle zaman konusunda ayrı bir script yazılıp gelen veriyi hangi zaman diliminde kaydetmek istediğiniz, ekinoks zamanlarındaki geçişler, TR'deki bayram vs tatilleri piyasanın on/off olduğu saatler ile ilgili bir şeyler yapabilirim. Örneğin siz Amsterdam'dasınız yaz ve kış saatleri uygulaması var ve saatlerinin ileri/geri alınıyor. Veriyi kaydederken Local Time, Bank, Currency Data ... şeklinde kaydedebilirsiniz. Her seferinde sorgu yaparken bu veri yaz saatine mi ait, kış saatine mi ait (+1 veya +2 saat eklenecek) veya TR'de düne mi ait bugüne mi ait, o gün bayram mı seyran mı diye kontrol etmeniz gerekiyor. Zamanı ayrı bir scripte sorarak daha öncesinde o gün ve saat ile ilgili gerçek detaylı bilgi alınabilir. Saygılarımla. |
Python ile İş Bankası'ndan anlık döviz kurlarını çekme (2. sayfa)
-
-
Benim koyduğum site expire oldu, herif tekrar ortaya çıktı hiçbir şey olmamış gibi. Komedi ya bu tip.. kendi yazıp kendi cevap veriyor.
Oğlum, zaman serisi ihtiyacın varsa gir Merkez Bankasının sitesine, EVDS diye geçen kısım, bedava indiriyorsun tüm kur serilerini.
< Bu ileti mobil sürüm kullanılarak atıldı > -
Amma dram çıkardınız birinin paylaştığı şeyden.
-
Senin site:
Soru günceldir. Beautiful Soup ile Sayılar Tablosu altındaki 3 sayıyı (98, 105, 117) scrape eden kod yazınız.
< Bu ileti mini sürüm kullanılarak atıldı > -
Hocam eline sağlık, benim de aklıma birkaç proje var aslında, örneğin BDDK'nın yayınladığı haftalık ve aylık sektör verilerini otomatik çekip getirmek gibi. Sadece ay ve sene bilgisi input olacak şekilde yapılabilir diye düşünüyorum ama burada tek sıkıntı sayfanın değişiyor olması her hafta :) Bu konuda çözüm yolları var ama sizin daha önce sayfa path'i değişen bir senaryoda data getirdiğiniz bir çalışma var mı ?
-
bddk sayfasında excel raporlama var adresi program aracılığıyla oluşturup parameterler geçilir download edilir bitanede excel parser ile indirilen dosya arayüzde gösterilebilir
örnekler
aylık bülten örnek uygulama çok hata kontrol üzerinde durmadım
https://s7.dosya.tc/server24/ab7ec2/Bddk.zip.html
<hc:Window x:Class="Bddk.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:hc="https://handyorg.github.io/handycontrol" xmlns:local="clr-namespace:Bddk" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Title="MainWindow" Width="800" Height="450" UseLayoutRounding="True" WindowState="Maximized" mc:Ignorable="d"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="3*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> </Grid.RowDefinitions> <StackPanel Grid.ColumnSpan="2" Orientation="Horizontal"> <ComboBox ItemsSource="{Binding Yıllar}" SelectedItem="{Binding SeçiliYıl}" /> <ComboBox ItemsSource="{Binding Aylar}" SelectedItem="{Binding SeçiliAy}" /> <ComboBox SelectedItem="{Binding ParaBirimi}"> <System:String>TL</System:String> <System:String>USD</System:String> </ComboBox> <hc:CheckComboBox x:Name="CheckComboBox" MinWidth="200" MaxWidth="400" DisplayMemberPath="Value" ItemsSource="{Binding Taraf}" SelectionChanged="CheckComboBox_SelectionChanged" Style="{StaticResource CheckComboBoxPlus}" /> <Button Click="Button_Click" Content="İNDİR" /> </StackPanel> <ListBox Grid.Row="1" SelectedIndex="{Binding SeçiliVeri}"> <System:String>Bilanço</System:String> <System:String>Kar Zarar</System:String> <System:String>Krediler</System:String> <System:String>Tüketici Kredileri</System:String> <System:String>Sektörel Kredi Dağılımı</System:String> <System:String>KOBİ Kredileri</System:String> <System:String>Sendikasyon Seküritizasyon Kredileri</System:String> <System:String>Menkul Kıymetler</System:String> <System:String>Mevduat Türler İtibarıyla</System:String> <System:String>Mevduat Vade İtibarıyla</System:String> <System:String>Likidite Durumu</System:String> <System:String>Sermaye Yeterliliği</System:String> <System:String>Yabancı Para Pozisyonu</System:String> <System:String>Bilanço Dışı İşlemler</System:String> <System:String>Rasyolar</System:String> <System:String>Diğer Bilgiler</System:String> <System:String>Yurt Dışı Şube Rasyoları</System:String> </ListBox> <DataGrid x:Name="Dg" Grid.Row="1" Grid.Column="1" /> </Grid> </hc:Window>Kod
Yığını:using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using ExcelDataReader; namespace Bddk { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : HandyControl.Controls.Window { public MainWindow() { InitializeComponent(); DataContext = this; Taraf.Add(10001, "Sektör"); Taraf.Add(10002, "Mevduat"); Taraf.Add(10003, "Mevduat Yerli"); Taraf.Add(10004, "Mevduat Kamu"); Taraf.Add(10005, "Mevduat Yabancı"); Taraf.Add(10006, "Katılım"); Taraf.Add(10007, "Kalkınma ve Yatırım"); Taraf.Add(10008, "Yerli Özel"); Taraf.Add(10009, "Kamu"); Taraf.Add(10010, "Yabancı"); } public IEnumerable<int> Aylar { get; set; } = Enumerable.Range(1, DateTime.Now.Month); public string ParaBirimi { get; set; } = "TL"; public int SeçiliAy { get; set; } = 1; public int SeçiliVeri { get; set; } = 0; public int SeçiliYıl { get; set; } = DateTime.Now.Year; public Dictionary<int, string> Taraf { get; set; } = new Dictionary<int, string>(); public string TarafMetin { get; set; } public IEnumerable<int> Yıllar { get; set; } = Enumerable.Range(DateTime.Now.Year - 20, 21); private void Button_Click(object sender, RoutedEventArgs e) { if (TarafMetin is null) { MessageBox.Show("Taraf Bilgisi Seçin"); return; } string adres = $"https://www.bddk.org.tr/BultenAylik/tr/Home/BasitExceleAktar?tabloNo={SeçiliVeri + 1}&yil={SeçiliYıl}&ay={SeçiliAy}¶Birimi={ParaBirimi}&{TarafMetin}"; string fileName; using (WebClient client = new WebClient()) { fileName = Path.GetTempPath() + Guid.NewGuid().ToString() + ".xlsx"; client.DownloadFile(adres, fileName); } using (FileStream stream = File.Open(fileName, FileMode.Open, FileAccess.Read)) { using (IExcelDataReader reader = ExcelReaderFactory.CreateReader(stream)) { Dg.ItemsSource = reader.AsDataSet().Tables[0].DefaultView; } } } private void CheckComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { string data = ""; for (int i = 0; i < CheckComboBox.SelectedItems.Count; i++) { KeyValuePair<int, string> item = (KeyValuePair<int, string>)CheckComboBox.SelectedItems[i]; data += "taraf[" + i + "]=" + item.Key + "&"; } TarafMetin = data; } } }Kod
Yığını:
< Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 8 Eylül 2022; 21:8:49 >
-
Merhaba,
Bahsetmiş olduğunuz konu ve sayfa aşağıda resmi ve bağlantısı olan sayfa mı?
Bağlantı adresi: https://www.bddk.org.tr/BultenHaftalik
Saygılarımla.
-
Merhaba,
@Spartan 117 Evet bu şekilde de yapılabilir. Hatta bu şekilde yapmak hem daha hızlı hem de daha kolaydır.
Ya da istenirse parametreler post ile gönderilerek sadece istenilen veri de çekilebilir.
Saygılarımla.
-
@kayadelenium , @Gökşen PASLI Arkadaşlar ikinize de çok teşekkür ederim. Yoğun bir gündü, en kısa sürede kodu inceleyeceğim, hata düzeltme kısmını da ben yaparım :) Elinize sağlık.
-
https://eminent-uneven-ankle.glitch.me/
hala bekliyorum, şuradaki 3 sayıyı crawl edip gösteren python scriptini...
.Net/C# şovmeni de geldi konuya, tamam o da C# ile yapsın, hadi bekliyoruz bak kaç hafta oldu.
< Bu ileti mobil sürüm kullanılarak atıldı > -
using System; using System.Threading.Tasks; using Microsoft.Playwright; namespace ConsoleApp2 { internal static class Program { private static async Task Main(string[] args) { using IPlaywright pw = await Playwright.CreateAsync(); await using IBrowser browser = await pw.Chromium.LaunchAsync(new BrowserTypeLaunchOptions() { Channel = "msedge" }); IPage page = await browser.NewPageAsync(); IResponse resp = await page.GotoAsync("https://eminent-uneven-ankle.glitch.me"); System.Text.Json.JsonElement? first = await page.EvaluateAsync("var k = document.getElementsByTagName('tr')[1].cells[0];k.innerHTML = k.attributes[0].textContent.codePointAt(0); "); System.Text.Json.JsonElement? second = await page.EvaluateAsync("var k = document.getElementsByTagName('tr')[1].cells[1];k.innerHTML = k.attributes[0].textContent.codePointAt(0); "); System.Text.Json.JsonElement? third = await page.EvaluateAsync("var k = document.getElementsByTagName('tr')[1].cells[2];k.innerHTML = k.attributes[0].textContent.codePointAt(0); "); Console.WriteLine(first); Console.WriteLine(second); Console.WriteLine(third); } } }
Kod
Yığını:Gelecek Cevabı da Söyleyeyim Browser Çalıştırma Yasak
< Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 14 Eylül 2022; 19:44:59 >
-
oncesinde js interpreter kullanip yine statik html bir siteymis gibi isleyebilir. aratirken puppeteer diye bir sey gordum o isine yarar.
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X