tabela skrobania z pythonem na podstawie dat
od tygodnia próbuję zeskrobać stół z tej strony https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspxale nie mam pomysłu, co napisać, jestem bardzo zdezorientowany. Próbuję wyskrobać tabelę transakcji kurs z lat 2015-2020 (20.11.2015-20.11.2020,

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)
Odpowiedzi
Musisz użyć selenu . Możesz zainstalować Selenium, a następnie możesz zainstalować sterownik . Używam Chrome, a po zainstalowaniu zanotuj tę ścieżkę i ustaw DRIVER_PATH
lokalizację
W poniższym kodzie po prostu poproszę o zamieszczony przez Ciebie link, a następnie wpisuję daty, które możesz zmienić. Na koniec klikam przycisk przesyłania. To generuje tabelę w zakresie dat. Teraz możesz napisać kolejny kod, aby pobrać informacje z tabeli.
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()