tabla de raspado con python basada en fechas

Nov 28 2020

desde hace una semana he estado tratando de raspar una tabla de este sitio https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspxpero no tengo ni idea de qué escribir, estoy muy confundido. Estoy tratando de raspar la tabla de transacciones de kurs de 2015-2020 (20 de noviembre de 2015-20 de noviembre de 2020,

pero el problema es que el vínculo entre la fecha predeterminada y la fecha que elegí sigue siendo la misma. Ayúdame de cualquier manera, Gracias Tu antes !

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)

Respuestas

1 gosalia Nov 29 2020 at 15:29

Necesitas usar selenio . Puede instalar Selenium y luego puede instalar un controlador . Utilizo Chrome y luego, una vez que lo instales, anote esa ruta y establezca su DRIVER_PATHubicación en

En el código a continuación, lo que hago es básicamente solicitar el enlace que publicó y luego ingresar las fechas que puede cambiar. Finalmente hago clic en el botón de enviar. Eso genera la tabla dentro del rango de fechas. Ahora puede escribir un código de seguimiento para extraer la información de la tabla.

Código

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