Scraping-Tabelle mit Python basierend auf Daten

Nov 28 2020

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,

aber das Problem ist, dass die Verbindung zwischen dem Standarddatum und dem von mir gewählten Datum immer noch dasselbe ist. Bitte helfen Sie mir in irgendeiner Weise, danke du vorher!

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

1 gosalia Nov 29 2020 at 15:29

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_PATHauf 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()