Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
HTML Parse İşlemi
#1
(21-02-2018, Saat: 07:59)10.Köy Adlı Kullanıcıdan Alıntı:
(18-02-2018, Saat: 14:33)hakanharbeli Adlı Kullanıcıdan Alıntı: Merhaba ben size konu hakkında yardımcı olabilirim 5-6 yıldır bu parse işi ile uğraşıyorum 

şimdi öncelikle bu kısım biraz sıkıntı


[Ars=delphi]memo2.text := AradanSec(webbrowser1.OleObject.document.body.innerHTML,

    'rakam>', '</');[/ars]

Yukarıda webrowser1.oleobject kısmındaki kaynak kodlarını önce dilerseniz bir memoya aktarın. Çünkü bazen kaynak kodlarını çekme işlemi bitmeden ayıklamak zorunda kalabilir yazılımınız ve kaynak kodları tam çekilmeden ayıklandığı için sonuç alamayabilirsiniz.

önce kaynak kodlarını memoya ekleyin daha sonra memo2.text:=aradansec(kaynak.text,     diye ayıklama işlemi gerçekleştirin daha sağlıklı olur.

ikinci olarak siz bütün değerleri almak istiyorsanız. ve bu belirttiğiniz 'rakam>' bütün değerler için geçerliyse burada bu işi for döngüsüne bağlamak gerekir.

yardımcı olabilmek içinse sitenin innerhtml kaynak kodlarını memoya aktarıp buradan paylaşabilir misiniz? kaynak kodlarını bir kontrol edelim bakalım

şu an dışarı çıkıyorum dönüce for döngüsü örneği paylaşırım sizinle ama mutlaka kaynak kodlarını buraya paylaşın sitenin

Merhabalar.  Cevabınız ilginiz için teşekkür ederim.  Çözüm cevap bulamayınca ara vermiştim.  Inşallah ilk fırsatta çalışmaya tekrar bakayım.   Çok teşekkür ederim


Merhaba; Parse için oldukça uğraştım öğrenmek için ancak temiz bir ayrıştırma yapamadım. Regex ile denedim ama olumsuz deseni tam yazamıyorum, diğer yollarla da for döngüsünü tam kuramadım. Ayrıştırmak istediğim verilerle birçok veri de beraberinde geliyor. Bu şekilde de verileri işleyebilirim ancak doğru şekilde nasıl yapıyorsunuz?

Site kaynak kodları

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge" />
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
           <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
           <meta name="apple-mobile-web-app-capable" content="yes" />
           <link rel="shortcut icon" href="/transparency/javax.faces.resource/images/favicon.ico.xhtml?ln=assets" type="image/x-icon" />
           <link rel="icon" href="/transparency/javax.faces.resource/images/favicon.ico.xhtml?ln=assets" type="image/x-icon" /><!--[if lte IE 8]><link rel="stylesheet" type="text/css" href="/transparency/resources/assets/css/ie.css" /><![endif]--><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/theme.css.xhtml?ln=primefaces-adamantium" /><script type="text/javascript" src="/transparency/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&amp;v=5.3"></script><script type="text/javascript" src="/transparency/javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&amp;v=5.3"></script><script type="text/javascript" src="/transparency/javax.faces.resource/primefaces.js.xhtml?ln=primefaces&amp;v=5.3"></script><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/primefaces.css.xhtml?ln=primefaces&amp;v=5.3" /><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/amcharts/plugins/export/export.css.xhtml?ln=assets" /><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/css/core-layout.css.xhtml?ln=adamantium-layout" /><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/css/animate.css.xhtml?ln=adamantium-layout" /><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/css/adamantium-font.css.xhtml?ln=adamantium-layout" /><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/css/ripple-effect.css.xhtml?ln=adamantium-layout" /><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/css/perfect-scrollbar.css.xhtml?ln=adamantium-layout" /><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/css/font-awesome.css.xhtml?ln=adamantium-layout" /><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/css/adamantium-layout.css.xhtml?ln=adamantium-layout" /><link type="text/css" rel="stylesheet" href="/transparency/javax.faces.resource/css/custom.css.xhtml?ln=assets" /><script type="text/javascript">if(window.PrimeFaces){}</script>
       <style>
           /* just some CSS for the loading DIV */
           .loading {
               position: fixed;
               height: 100%;
               width: 100%;
               top: 0;
               left: 0;
               background: rgba(0, 0, 0, 0.9);
               z-index: 9999;
               font-size: 20px;
               text-align: center;
               padding-top: 200px;
               color: #fff;
           }
       </style>
       <script>
           //<![CDATA[
           $(document).ready(function () {
               
               $('form').on('submit', function () {
                   $('.loading').show();
               });
               $(".content").hide(); // hides the content DIV
           });

           // when all elements of the page are completely loaded, script below executes
           $(window).load(function () {
               $(".loading").fadeOut("slow"); // loading DIV fades out
           });
           //]]>

       </script>
       <title>Sistem Marjinal Fiyatı - Dengeleme Güç Piyasası - Piyasalar | EPİAŞ Şeffaflık Platformu</title><script type="text/javascript" src="/transparency/javax.faces.resource/js/ripple-effect.js.xhtml?ln=adamantium-layout"></script><script type="text/javascript" src="/transparency/javax.faces.resource/js/perfect-scrollbar.js.xhtml?ln=adamantium-layout"></script><script type="text/javascript" src="/transparency/javax.faces.resource/js/layout.js.xhtml?ln=adamantium-layout"></script><script type="text/javascript" src="/transparency/javax.faces.resource/js/custom.js.xhtml?ln=assets"></script></head><body class="dark">

       <div class="ie" style="display: none;">
           <style>
               .layout-topbar {
                   display: none !important;
               }
           </style>
           <h1>Eski bir tarayıcı kullanıyorsunuz. Lütfen daha yeni bir tarayıcı kullanın.</h1>
           <ul class="browserList">
               <li><a href="https://www.google.com/chrome/" target="_blank" class="chrome"></a></li>
               <li><a href="https://www.mozilla.org/tr/firefox/new/" target="_blank" class="firefox"></a></li>
               <li><a href="http://www.opera.com/tr/computer/windows" target="_blank" class="opera"></a></li>
               <li><a href="http://www.apple.com/tr/safari/" target="_blank" class="safari"></a></li>
               <li><a href="http://windows.microsoft.com/tr-tr/internet-explorer/download-ie" target="_blank" class="iex"></a></li>
           </ul>
       </div>

       <div class="loading"><img id="j_idt15" src="/transparency/javax.faces.resource/images/logo.png.xhtml?ln=assets" alt="" />
           <br />Yükleniyor...
       </div>
   <!-- TOPBAR START -->
   <div id="layout-topbar">
       <a id="menu-button" class="Animated1">
           <span id="menuline1" class="Animated05"></span>
           <span id="menuline2" class="Animated05"></span>
           <span id="menuline3" class="Animated05"></span>
       </a>
       <a href="/transparency/"><img id="logo" src="/transparency/javax.faces.resource/images/logo.png.xhtml?ln=assets" />
       </a>

       <a id="topmenu-button" class="Animated1">
           <i class="icon-list2"></i>
       </a>
<form id="j_idt22" name="j_idt22" method="post" action="/transparency/piyasalar/dgp/smf.xhtml" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_idt22" value="j_idt22" />

           <ul id="top-menu" class="lang-menu">
               <li><a id="j_idt22:j_idt24" href="#" class="ui-commandlink ui-widget menulink active" onclick="PrimeFaces.addSubmitParam('j_idt22',{'j_idt22:j_idt24':'j_idt22:j_idt24'}).submit('j_idt22');return false;">TR</a>
               </li>
               <li><a id="j_idt22:j_idt26" href="#" class="ui-commandlink ui-widget menulink " onclick="PrimeFaces.addSubmitParam('j_idt22',{'j_idt22:j_idt26':'j_idt22:j_idt26'}).submit('j_idt22');return false;">EN</a>
               </li>
               <!--&lt;li&gt;-->
                   <!--&lt;a class="menulink"&gt;&lt;i class="fa  fa-ellipsis-h"&gt;&lt;/i&gt;&lt;/a&gt;-->
                   <!--&lt;ul style="margin-left:-145px;"&gt;-->
                       <!--&lt;li&gt;&lt;a href="https://www.epias.com.tr/wp-content/uploads/2016/10/Web-Servis-%C5%9Eartnamesi-1.docx" target="_blank"&gt;-->
                               <!--&lt;i class="fa fa-angle-right"&gt;&lt;/i&gt; Web Servis Şartnamesi-->
                           <!--&lt;/a&gt;-->
                       <!--&lt;/li&gt;-->
                       <!--&lt;li&gt;-->
                           <!--&lt;a  href="/transparency/technical/tr/" target="_blank"&gt;-->
                               <!--&lt;i class="fa fa-angle-right"&gt;&lt;/i&gt; Web Servis Teknik Dok&uuml;manı-->
                           <!--&lt;/a&gt;&lt;/li&gt;-->
                       <!--&lt;li&gt;-->
                           <!--&lt;a href="/transparency/resources/6363-16-EK-1.pdf"&gt;-->
                               <!--&lt;i class="fa fa-angle-right"&gt;&lt;/i&gt; Onaylanan Veriler-->
                           <!--&lt;/a&gt;-->
                       <!--&lt;/li&gt;-->
                   <!--&lt;/ul&gt;-->
               <!--&lt;/li&gt;-->
           
   </div>
   <!-- TOPBAR END -->

   
       </div>
   </div>
   <div class="Container100">
       <div class="ContainerIndent">
           <h1 id="contentTitle" style="color: #656565;" class="Fleft">Sistem Marjinal Fiyatı</h1><a id="fade" name="fade" href="#"><span class="fa fa-info-circle Fs20 Blue Fleft titleInfo"> </span></a><div id="toolTipFade" class="ui-tooltip ui-widget ui-widget-content ui-shadow ui-corner-all">Sistem Marjinal Fiyatı, Dengeleme Güç Piyasasında net talimat hacimine karşılık gelen teklifin fiyatıdır.</div><script id="toolTipFade_s" type="text/javascript">$(function(){PrimeFaces.cw("Tooltip","widget_toolTipFade",{id:"toolTipFade",showEffect:"fade",hideEffect:"fade",target:"fade",escape:false,trackMouse:true});});</script>
       </div>
   </div>
<form id="j_idt174" name="j_idt174" method="post" action="/transparency/piyasalar/dgp/smf.xhtml" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_idt174" value="j_idt174" />


           <div class="Container100">
               <div class="ContainerIndent">
                   <div class="Card">

                       <div class="Container20 Responsive100 calendarFilter">
                           <div class="filterItemRow">
                               <i class="fa  fa-calendar Fs14 PadRight5"></i><label id="j_idt174:j_idt176" class="ui-outputlabel ui-widget" for="j_idt174:date1_input">Başlangıç Tarihi: </label>
                           </div>
                           <div><span id="j_idt174:date1" class="ui-calendar"><input id="j_idt174:date1_input" name="j_idt174:date1_input" type="text" value="17.03.2019" class="ui-inputfield ui-widget ui-state-default ui-corner-all" aria-labelledby="j_idt174:j_idt176" /></span><script id="j_idt174:date1_s" type="text/javascript">$(function(){PrimeFaces.cw("Calendar","widget_j_idt174_date1",{id:"j_idt174:date1",popup:true,locale:"tr",dateFormat:"dd.mm.yy",defaultDate:"17.03.2019",changeMonth:true,changeYear:true,mask:"99.99.9999"});});</script>
                           </div>
                       </div>
                       <div class="Container20 Responsive100 calendarFilter">
                           <div class="filterItemRow">
                               <i class="fa  fa-calendar Fs14 PadRight5"></i><label id="j_idt174:j_idt179" class="ui-outputlabel ui-widget" for="j_idt174:date2_input">Bitiş Tarihi: </label>
                           </div>
                           <div><span id="j_idt174:date2" class="ui-calendar"><input id="j_idt174:date2_input" name="j_idt174:date2_input" type="text" value="17.03.2019" class="ui-inputfield ui-widget ui-state-default ui-corner-all" aria-labelledby="j_idt174:j_idt179" /></span><script id="j_idt174:date2_s" type="text/javascript">$(function(){PrimeFaces.cw("Calendar","widget_j_idt174_date2",{id:"j_idt174:date2",popup:true,locale:"tr",dateFormat:"dd.mm.yy",defaultDate:"17.03.2019",changeMonth:true,changeYear:true,mask:"99.99.9999"});});</script>
                           </div>
                       </div>
                       <div class="Container5 Responsive100">
                           <div class="filterItemRow filterButton"><button id="j_idt174:goster" name="j_idt174:goster" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" onclick="" type="submit"><span class="ui-button-text ui-c">Uygula</span></button><script id="j_idt174:goster_s" type="text/javascript">PrimeFaces.cw("CommandButton","widget_j_idt174_goster",{id:"j_idt174:goster"});</script>
                           </div>

                       </div>
                       <div class="EmptyBox10"></div>
                   </div>
               </div>
           </div>


           <div class="Container40 Responsive100">
               <div class="ContainerIndent">
                   <div class="Card"><div id="j_idt174:dt" class="ui-datatable ui-widget container100 Responsive100" style="margin-bottom:20px"><div class="ui-datatable-tablewrapper"><table role="grid"><thead id="j_idt174:dt_head"><tr role="row"><th id="j_idt174:dt:j_idt183" class="ui-state-default TexAlCenter" role="columnheader"><span class="ui-column-title">Tarih</span></th><th id="j_idt174:dt:j_idt185" class="ui-state-default TexAlCenter" role="columnheader"><span class="ui-column-title">Saat</span></th><th id="j_idt174:dt:j_idt187" class="ui-state-default TexAlCenter" role="columnheader"><span class="ui-column-title">SMF (TL/MWh)</span></th></tr></thead><tfoot id="j_idt174:dt_foot"><tr><td class="ui-state-default TexAlRight" colspan="2">Aritmetik Ortalama: </td><td class="ui-state-default">219,33</td></tr></tfoot><tbody id="j_idt174:dt_data" class="ui-datatable-data ui-widget-content"><tr data-ri="0" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">00:00</td><td role="gridcell" class="TexAlCenter">300,01</td></tr><tr data-ri="1" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">01:00</td><td role="gridcell" class="TexAlCenter">304,63</td></tr><tr data-ri="2" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">02:00</td><td role="gridcell" class="TexAlCenter">170,00</td></tr><tr data-ri="3" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">03:00</td><td role="gridcell" class="TexAlCenter">133,99</td></tr><tr data-ri="4" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">04:00</td><td role="gridcell" class="TexAlCenter">181,40</td></tr><tr data-ri="5" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">05:00</td><td role="gridcell" class="TexAlCenter">299,00</td></tr><tr data-ri="6" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">06:00</td><td role="gridcell" class="TexAlCenter">324,88</td></tr><tr data-ri="7" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">07:00</td><td role="gridcell" class="TexAlCenter">237,00</td></tr><tr data-ri="8" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">08:00</td><td role="gridcell" class="TexAlCenter">200,00</td></tr><tr data-ri="9" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">09:00</td><td role="gridcell" class="TexAlCenter">200,00</td></tr><tr data-ri="10" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">10:00</td><td role="gridcell" class="TexAlCenter">205,00</td></tr><tr data-ri="11" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">11:00</td><td role="gridcell" class="TexAlCenter">227,75</td></tr><tr data-ri="12" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">12:00</td><td role="gridcell" class="TexAlCenter">200,00</td></tr><tr data-ri="13" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">13:00</td><td role="gridcell" class="TexAlCenter">244,90</td></tr><tr data-ri="14" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">14:00</td><td role="gridcell" class="TexAlCenter">210,00</td></tr><tr data-ri="15" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">15:00</td><td role="gridcell" class="TexAlCenter">200,00</td></tr><tr data-ri="16" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">16:00</td><td role="gridcell" class="TexAlCenter">90,00</td></tr></tbody></table></div><div id="j_idt174:dt_paginator_bottom" class="ui-paginator ui-paginator-bottom ui-widget-header ui-corner-bottom" role="navigation"><span class="ui-paginator-current">(1 of 1)</span><span class="ui-paginator-first ui-state-default ui-corner-all ui-state-disabled"><span class="ui-icon ui-icon-seek-first">p</span></span><span class="ui-paginator-prev ui-state-default ui-corner-all ui-state-disabled"><span class="ui-icon ui-icon-seek-prev">p</span></span><span class="ui-paginator-pages"><span class="ui-paginator-page ui-state-default ui-state-active ui-corner-all" tabindex="0">1</span></span><span class="ui-paginator-next ui-state-default ui-corner-all ui-state-disabled"><span class="ui-icon ui-icon-seek-next">p</span></span><span class="ui-paginator-last ui-state-default ui-corner-all ui-state-disabled"><span class="ui-icon ui-icon-seek-end">p</span></span><select id="j_idt174:dt_rppDD" name="j_idt174:dt_rppDD" class="ui-paginator-rpp-options ui-widget ui-state-default ui-corner-left" autocomplete="off"><option value="24" selected="selected">24</option><option value="48">48</option><option value="72">72</option><option value="96">96</option></select>
<script type="text/javascript" src="/transparency/javax.faces.resource/jsf.js.xhtml?ln=javax.faces"></script>
<a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt174'),{'j_idt174:dt:j_idt189':'j_idt174:dt:j_idt189'},'');return false"><img id="j_idt174:dt:j_idt190" src="/transparency/javax.faces.resource/images/excel.png.xhtml?ln=assets" alt="" width="24" title="Dışarı Aktar (XLS)" /></a><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt174'),{'j_idt174:dt:j_idt191':'j_idt174:dt:j_idt191'},'');return false"><img id="j_idt174:dt:j_idt192" src="/transparency/javax.faces.resource/images/csv.png.xhtml?ln=assets" alt="" width="24" title="Dışarı Aktar (CSV)" /></a><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt174'),{'j_idt174:dt:j_idt193':'j_idt174:dt:j_idt193'},'');return false"><img id="j_idt174:dt:j_idt194" src="/transparency/javax.faces.resource/images/xml.png.xhtml?ln=assets" alt="" width="24" title="Dışarı Aktar (XML)" /></a><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt174'),{'j_idt174:dt:j_idt195':'j_idt174:dt:j_idt195'},'');return false"><img id="j_idt174:dt:j_idt196" src="/transparency/javax.faces.resource/images/pdf.png.xhtml?ln=assets" alt="" width="24" title="Dışarı Aktar (PDF)" /></a></div></div><script id="j_idt174:dt_s" type="text/javascript">$(function(){PrimeFaces.cw("DataTable","widget_j_idt174_dt",{id:"j_idt174:dt",paginator:{id:['j_idt174:dt_paginator_bottom'],rows:24,rowCount:17,page:0,currentPageTemplate:'({currentPage} of {totalPages})'}});});</script>
                   </div>
               </div>
           </div>

               <div class="Container60 Responsive100">
                   <div class="ContainerIndent">
                       <div class="Card">
                           <div id="chartdiv"></div><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/amcharts.js.xhtml?ln=assets"></script><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/serial.js.xhtml?ln=assets"></script><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/themes/light.js.xhtml?ln=assets"></script>
                           <!--amCharts export libs--><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/plugins/export/libs/blob.js/blob.js.xhtml?ln=assets"></script><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/plugins/export/libs/fabric.js/fabric.min.js.xhtml?ln=assets"></script><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/plugins/export/libs/FileSaver.js/FileSaver.min.js.xhtml?ln=assets"></script><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/plugins/export/libs/jszip/jszip.min.js.xhtml?ln=assets"></script><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/plugins/export/libs/pdfmake/pdfmake.min.js.xhtml?ln=assets"></script><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/plugins/export/libs/xlsx/xlsx.min.js.xhtml?ln=assets"></script><script type="text/javascript" src="/transparency/javax.faces.resource/amcharts/plugins/export/export.min.js.xhtml?ln=assets"></script><script type="text/javascript">
                               var downloadLabel1 = "Resim Olarak İndir";
                               var downloadLabel2 = "Veri Olarak İndir";
                               var data=[{"date":"17-03-2019 00:00","price":300.01,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 01:00","price":304.63,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 02:00","price":170,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 03:00","price":133.99,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 04:00","price":181.4,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 05:00","price":299,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 06:00","price":324.88,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 07:00","price":237,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 08:00","price":200,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 09:00","price":200,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 10:00","price":205,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 11:00","price":227.75,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 12:00","price":200,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 13:00","price":244.9,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 14:00","price":210,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 15:00","price":200,"smpDirection":"YAL","smpDirectionId":1},{"date":"17-03-2019 16:00","price":90,"smpDirection":"YAL","smpDirectionId":1}];
                               var valueField="price";
                               var baloonTextUnit="TL/MWh";
                               var xtitle= "Saat";
                               var filename = "SMF-17032019";

                                   "export": {
                                       fileName:filename,
                                       "enabled": true,
                                       "menu": [{
                                               "class": "export-main",
                                               "menu": [
                                                   {"label": downloadLabel1,"menu": [ "PNG", "JPG"]},
                                                   //{"label": downloadLabel2,"menu": [ "CSV", "XLSX" ]}
                                               ]
                                           }]
                                   }
                                   ,
                                   "dataProvider": data,
                                   });
                           // ]]></script>


                       </div>
                   </div>
             

       </script></body>

</html>







Veriler kümesi

<div class="Container40 Responsive100">
               <div class="ContainerIndent">
                   <div class="Card"><div id="j_idt174:dt" class="ui-datatable ui-widget container100 Responsive100" style="margin-bottom:20px"><div class="ui-datatable-tablewrapper"><table role="grid"><thead id="j_idt174:dt_head"><tr role="row"><th id="j_idt174:dt:j_idt183" class="ui-state-default TexAlCenter" role="columnheader"><span class="ui-column-title">Tarih</span></th><th id="j_idt174:dt:j_idt185" class="ui-state-default TexAlCenter" role="columnheader"><span class="ui-column-title">Saat</span></th><th id="j_idt174:dt:j_idt187" class="ui-state-default TexAlCenter" role="columnheader"><span class="ui-column-title">SMF (TL/MWh)</span></th></tr></thead><tfoot id="j_idt174:dt_foot"><tr><td class="ui-state-default TexAlRight" colspan="2">Aritmetik Ortalama: </td><td class="ui-state-default">219,33</td></tr></tfoot><tbody id="j_idt174:dt_data" class="ui-datatable-data ui-widget-content"><tr data-ri="0" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">00:00</td><td role="gridcell" class="TexAlCenter">300,01</td></tr><tr data-ri="1" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">01:00</td><td role="gridcell" class="TexAlCenter">304,63</td></tr><tr data-ri="2" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">02:00</td><td role="gridcell" class="TexAlCenter">170,00</td></tr><tr data-ri="3" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">03:00</td><td role="gridcell" class="TexAlCenter">133,99</td></tr><tr data-ri="4" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">04:00</td><td role="gridcell" class="TexAlCenter">181,40</td></tr><tr data-ri="5" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">05:00</td><td role="gridcell" class="TexAlCenter">299,00</td></tr><tr data-ri="6" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">06:00</td><td role="gridcell" class="TexAlCenter">324,88</td></tr><tr data-ri="7" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">07:00</td><td role="gridcell" class="TexAlCenter">237,00</td></tr><tr data-ri="8" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">08:00</td><td role="gridcell" class="TexAlCenter">200,00</td></tr><tr data-ri="9" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">09:00</td><td role="gridcell" class="TexAlCenter">200,00</td></tr><tr data-ri="10" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">10:00</td><td role="gridcell" class="TexAlCenter">205,00</td></tr><tr data-ri="11" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">11:00</td><td role="gridcell" class="TexAlCenter">227,75</td></tr><tr data-ri="12" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">12:00</td><td role="gridcell" class="TexAlCenter">200,00</td></tr><tr data-ri="13" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">13:00</td><td role="gridcell" class="TexAlCenter">244,90</td></tr><tr data-ri="14" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">14:00</td><td role="gridcell" class="TexAlCenter">210,00</td></tr><tr data-ri="15" class="ui-widget-content ui-datatable-odd" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">15:00</td><td role="gridcell" class="TexAlCenter">200,00</td></tr><tr data-ri="16" class="ui-widget-content ui-datatable-even" role="row"><td role="gridcell" class="TexAlCenter">17/03/2019</td><td role="gridcell" class="TexAlCenter">16:00</td><td role="gridcell" class="TexAlCenter">90,00</td></tr></tbody></table></div><div id="j_idt174:dt_paginator_bottom" class="ui-paginator ui-paginator-bottom ui-widget-header ui-corner-bottom" role="navigation">



Almak istediğim veriler; kısmının Tarih ve saat kısımları hariç olan sayısal veriler 

300,01
304,63
170,00
133,99
181,40
299,00
324,88
237,00
200,00
200,00
205,00
227,75
200,00
244,90
210,00
200,00
90,00
Bu verileri dağınıkta olsa alıp işleyebiliyorum ancak bu işlemin nasıl doğru yapıldığını merak ediyorum.




Function aradansec( text, ilk, son:String ): String;
begin
  Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
  Result := Copy(Text, 1, Pos(Son, Text)-1);
end;

var
i:integer;
veriler,s,s1 : String;
begin
for i := 0 to memo1.Lines.Count - 1 do
begin
veriler := Memo1.Lines[i];
s := aradansec(Memo1.Lines[i],'er">','</t');
s := s;
if Length(s) > 1 then
memo2.text:=(trim(s));
end;
Cevapla
#2
HTML kodlarının JSON ile alakası yok o mantıklada yapılmaz hazır component kullanmak en iyisi

https://www.yunqa.de/delphi/products/htmlparser/index
Cevapla
#3
HTML parse işlemini bu şekilde string parse gibi yapmaktansa COM object kullanarak yapmak daha mantıklı ve daha kolay.
ActiveX ve MSHTML unitlerini (coHTMLDocument, IHTMLDocument2 vs.) kullanabilirsiniz.

Şu sitede HTML parse ile ilgili bir çok örnek bulabilirsiniz:
http://delphidabbler.com

Bir zamanlar şurada basit bir HTML parse örneği yazmıştım:
http://www.delphican.com/showthread.php?tid=1523
Bu linkte html table'ın satırları arasında dolaşıp istenilen hücrelerdeki değerlerin okunmasına dair örnek var.
There's no place like 127.0.0.1
WWW
Cevapla
#4
@SimaWB dediği gibi yapmak için bir örnek hazırladım. 

En azından Windows ortamında böyle çözüm kolay, Android ortamında lazım olursa o zaman yeniden düşünürsünüz. Wink

Idea

Uses    IdSSLOpenSSL,
        IdSSLOpenSSLHeaders,
        MSHTML,
        ActiveX,
        ComObj,
        IdHttp;

procedure ParseEdilsin( aDoc: IHTMLDocument2; aListe: TStrings );
var
  aDIVtags,
  aTableRows,
  aTableCols        : OleVariant;
  iDiv, iRow, iCol  : Integer;
  strVeri           : String;
begin
  aListe.Clear;
  aDIVtags := aDoc.all.tags('DIV');
  for iDiv := 0 to aDIVtags.length - 1 do
  begin
    if Pos( 'Container40 Responsive100', aDIVtags.item(iDiv).className ) > 0
    then
    begin // Div Class = 'Container40 Responsive100' olana baktık... Sizin veriler burada...
      aTableRows := aDIVtags.item(iDiv).all.Tags['TR'];
      for iRow := 0 to aTableRows.Length-1 do
      begin
        strVeri    := '';
        aTableCols := aTableRows.item(iRow).all.Tags['TD'];
        for iCol := 0 to aTableCols.Length-1 do
        begin
          if strVeri = ''
            then strVeri := aTableCols.item(iCol).innerText
            else strVeri := strVeri + ', ' + aTableCols.item(iCol).innerText;
        end;
        if strVeri <> ''
          then aListe.Add( strVeri );
      end;
    end;
  end;
  aDIVtags    := Unassigned;
  aTableRows  := Unassigned;
  aTableCols  := Unassigned;
end;

procedure FiyatlarProc( aListe:TStrings; aTarih : TDate);
Const
  aUrl = 'https://seffaflik.epias.com.tr/transparency/piyasalar/dgp/smf.xhtml';
var
  IdHttp                : TIdHttp;
  IdSSLIOHandlerSocket  : TIdSSLIOHandlerSocketOpenSSL;
  SS                    : TStringStream;
  Params                : TStringList;
  V                     : OleVariant;
  aDoc                  : IHTMLDocument2;
  aAra, aGelen, aViewState            : String;
begin
  IdHttp               := TIdHttp.Create(nil);
  IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.create(nil);
  SS                   := TStringStream.Create;
  Params               := TStringList.Create;
  try
    IdSSLIOHandlerSocket.PassThrough        := True;
    IdSSLIOHandlerSocket.SSLOptions.Method  := TIdSSLVersion.sslvTLSv1_2;

    IdHttp.IOHandler            := IdSSLIOHandlerSocket;
    IdHttp.Request.UserAgent    := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36';

    // Parametre için lazım olan ViewState değerini alalım
    aGelen  := IdHttp.Get( aURL );
      aAra    := 'javax.faces.ViewState';
      System.Delete( aGelen, 1, Pos( aAra, aGelen ) + Length(aAra) -1 );
      aAra    := 'value="';
      System.Delete( aGelen, 1, Pos( aAra, aGelen ) + Length(aAra) -1 );
    aViewState := Copy( aGelen, 1, Pos('"', aGelen )-1 );

    Params.Values['j_idt174'              ] := ' ';
    Params.Values['j_idt174:date1_input'  ] := FormatDateTime( 'DD.MM.YYYY', aTarih );
    Params.Values['j_idt174:date2_input'  ] := FormatDateTime( 'DD.MM.YYYY', aTarih );
    Params.Values['j_idt174:dt_rppDD'     ] := '96';
    Params.Values['j_idt174:goster'       ] := ' ';
    Params.Values['javax.faces.ViewState' ] := aViewState;

    IdHttp.Post( aURL, Params, SS );
    SS.Position       := 0;

    aDoc              := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2;
    aDoc.DesignMode   := 'on';
      V               := VarArrayCreate(  [0,0], varVariant );
      V[0]            := SS.DataString;
      aDoc.Write(  PSafeArray( System.TVarData(V).VArray) );
    aDoc.DesignMode   := 'off';

    while aDoc.ReadyState <> 'complete' do
      Application.ProcessMessages;
 // Artık Render Edildi...
 // Sanki WebBrowser'dan dönmüş gibi oldu...
    ParseEdilsin( aDoc, aListe );
  finally
    IdHttp.Free;
    IdSSLIOHandlerSocket.Free;
    SS.Free;
    Params.Free;
    aDoc.Close;
    aDoc := Nil;
  end;
end;


Kullanımı :


procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  Fiyatlar : TStringList;
  Tarih    : TDate;
begin
  Tarih    := StrToDate( '18.03.2019' );
  Fiyatlar := TStringList.Create;
    FiyatlarProc( Fiyatlar, Tarih );
    Showmessage( Fiyatlar.Text );
  Fiyatlar.Free;
end;


mfjejwljxvh1wohzgpp3.png
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#5
Çok teşekkür ederim Sayın @SimaWB ve Sayın @mrmarman Bey. Hazırladığınız örneğe satır satır çalışmam gerek. Yalnız siz daha html yi okurken son kullanıcının ne isteyecegini iyi kestiriyorsunuz. Tarih ile sorgulama gerçekten bonus oldu. Inşallah mobil ortamda da kolay yolları vardır. For dongusuyle mobilde bircok gereksiz verilerle de olsa parse ediyor ama gerekli gereksiz cok veri olusuyor.Elinize yüreğinize sağlık
Cevapla
#6
Merhabalar
HTML parse işlemleri için şöyle bir şey verebilirim

https://github.com/benibela/internettools

Bazı açıklamalar ve kullanımı için : http://www.benibela.de/documentation/internettools/
Cevapla
#7
Teşekkür ederim. Linki inceledigimde lazarus için okudum delphi için herhangi bir uyumsuzluğu var mı? Şu an deneyemiyorum ilk fırsatta inceler denerim inşallah.
Cevapla
#8
Burada hem lazarus hem pascal için vardır büyük ihtimalle sorun olmayacaktır

https://sourceforge.net/p/videlibri/code...omponents/
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  store procedure ile toplama islemi sadikacar60 5 347 22-04-2024, Saat: 12:50
Son Yorum: bydelphi
Smile TrayIcon ile BringToFront işlemi mcuyan 0 181 30-11-2023, Saat: 21:27
Son Yorum: mcuyan
  Delphi 7 Veri Tabanı İşlemi Hakkında mahone 6 1.123 28-02-2023, Saat: 15:36
Son Yorum: mahone
  Local HTML Dosyasını Yazdırma Hayati 2 651 09-01-2023, Saat: 12:33
Son Yorum: Hayati
  Html veya Xml pdf e çevirme ahmet6513 11 2.829 02-01-2023, Saat: 15:22
Son Yorum: ahmet6513



Konuyu Okuyanlar: 1 Ziyaretçi