Scraping-Tabelle mit Python basierend auf Daten
seit einer woche versuche ich einen tisch von dieser seite zu kratzen https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspxaber ich habe keine ahnung was ich schreiben soll, ich bin sehr verwirrt. Ich versuche, die Tabelle der kurs-Transaktionen von 2015 bis 2020 (20. November 2015 bis 20. November 2020) zu kratzen,

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)
Antworten
Sie müssen Selen verwenden . Sie können Selenium installieren und anschließend einen Treiber installieren . Ich verwende Chrome und notiere mir nach der Installation diesen Pfad und setze deinen DRIVER_PATH
auf den Speicherort
Im folgenden Code fordere ich grundsätzlich den von Ihnen geposteten Link an und gebe dann die Daten ein, die Sie ändern können. Zum Schluss klicke ich auf den Submit Button. Dadurch wird die Tabelle innerhalb des Datumsbereichs generiert. Jetzt können Sie Folgecode schreiben, um die Informationen aus der Tabelle zu entfernen.
Code
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()