tarihlere göre python ile kazıma tablosu

Nov 28 2020

bir hafta önce bu siteden bir tablo kazımaya çalışıyorum https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspxama ne yazacağım konusunda bir fikrim yok, kafam çok karışık. 2015-2020 (20 Kasım 2015-20 Kasım 2020) kurs işleminin tablosunu kazımaya çalışıyorum,

ancak sorun varsayılan tarih ile seçtiğim tarih arasındaki bağlantı hala aynı. lütfen herhangi bir şekilde bana yardım et, Teşekkürler önce sen!

import requests
from bs4 import BeautifulSoup
import pandas as pd
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36",
"X-Requested-With":"XMLHttpRequest"
}
url = "https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspx"
import requests
from lxml import html
response = requests.get(url)
content= response.content
print(content)

Yanıtlar

1 gosalia Nov 29 2020 at 15:29

Selenium kullanmanız gerekiyor . Selenium'u kurabilir ve ardından bir sürücü kurabilirsiniz . Chrome kullanıyorum ve yükledikten sonra bu yolu not edin DRIVER_PATHve konumunuzu ayarlayın

Aşağıdaki kodda yaptığım şey temelde gönderdiğiniz bağlantıyı talep etmek ve ardından değiştirebileceğiniz tarihleri ​​giriyorum. Son olarak gönder düğmesine tıklıyorum. Bu, tarih aralığı içinde tabloyu oluşturur. Şimdi, bilgileri tablodan kazımak için takip kodu yazabilirsiniz.

Kod

import requests
from selenium import webdriver

DRIVER_PATH = 'Yourpath/chromedriver'
driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get('https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspx')
start_date = driver.find_element_by_id("ctl00_PlaceHolderMain_biWebKursTransaksiBI_txtFrom")
start_date.send_keys("15-Nov-20")
end_date = driver.find_element_by_id("ctl00_PlaceHolderMain_biWebKursTransaksiBI_txtTo")
end_date.send_keys("20-Nov-20")
submit_button = driver.find_element_by_id("ctl00_PlaceHolderMain_biWebKursTransaksiBI_btnSearch1").click()