Script Autoclick Cek Harga Saham Bibit.id (Web)

tmp7
Jul 25

Saya lagi coba jual-beli saham untuk jangka pendek. Berhubung target portofolio saya cukup banyak, jadi saya bikin script autoclick untuk web Bibit.id.

Yuru camp video on YouTube
@pacolemon/yt-iframe-v1.0.1

Script ini membuka halaman produk, mengambil harga terkini, kembali ke menu sebelumnya, kemudian lanjut membuka halaman produk lain sampai selesai. 

(Script dijalankan di menu console DevTools)

js
(async function() {
  
  let items = [
    'Grow Saham Indonesia Plus Kelas O',
    'Grow SRI KEHATI Kelas O',
    'BNP Paribas SRI KEHATI',
    'TRIM Kapital Plus',
    'Trimegah FTSE Indonesia Low Volatility Factor Index',
    'Sucorinvest Equity Fund',
  ]
  
  let prices = [];
  
  let wait = (function() {
  
    let SELF = {
      Until,
    };
    
    function Until(stateCheckCallback, delay=100, timeout=null) {
      
      let useTimeout = timeout !== null;
      delay = delay ?? 100;
      
      return new Promise((resolve, reject) => {
        let interval = window.setInterval(() => {
          let shouldResolve = stateCheckCallback();
          
          timeout -= delay;
          
          if (shouldResolve) {
            window.clearInterval(interval);
            resolve();
          } else if (useTimeout && timeout <= 0) {
            window.clearInterval(interval);
            reject();
          }
          
        }, delay);
      });
      
    }
    
    return SELF;
    
  })();

  while (items.length > 0) {
    let title = items.pop();
    let titleEl = null;
    let priceTag = null;
    
    await wait.Until(() => {
      titleEl = Array.from(document.querySelectorAll('.top-title')).find(x => x.firstChild.textContent.trim() == title);
      return titleEl;
    })
    titleEl.click();
    
    await wait.Until(() => {
      priceTag = Array.from(document.querySelectorAll('[direction="column"]')).find(x => x.childElementCount == 3 && x.childNodes[1].textContent.includes('Rp'))?.childNodes[1]?.textContent;
      return priceTag;
    })
    prices.push({title, priceTag})
    
    document.querySelector('.bit-uikit-topbar-backbutton').click()
  }
  
  console.log(prices)
  
})();

Mau Coba?

Kalian perlu sesuaikan data berikut dengan nama produk yang kalian incar. Penulisannya harus sama persis seperti yang tampil di aplikasi Bibit.

js
let items = [
  'Grow Saham Indonesia Plus Kelas O',
  'Grow SRI KEHATI Kelas O',
  'BNP Paribas SRI KEHATI',
  'TRIM Kapital Plus',
  'Trimegah FTSE Indonesia Low Volatility Factor Index',
  'Sucorinvest Equity Fund',
];

Selanjutnya, run script di halaman reksa dana saham dan tunggu sampai selesai. Nanti hasil yang didapatkan adalah daftar nama dan harga terkini produk.

Berikut contoh output di console :

js
[
    {
        "title": "Sucorinvest Equity Fund",
        "priceTag": "Rp2,555.0100"
    },
    {
        "title": "Trimegah FTSE Indonesia Low Volatility Factor Index",
        "priceTag": "Rp1,246.3623"
    },
    {
        "title": "TRIM Kapital Plus",
        "priceTag": "Rp4,257.4100"
    },
    {
        "title": "BNP Paribas SRI KEHATI",
        "priceTag": "Rp1,112.8300"
    },
    {
        "title": "Grow SRI KEHATI Kelas O",
        "priceTag": "Rp1,080.8400"
    },
    {
        "title": "Grow Saham Indonesia Plus Kelas O",
        "priceTag": "Rp1,043.6900"
    }
]


Newer posts
Older posts

Komentar