table de grattage avec python en fonction des dates

Nov 28 2020

depuis une semaine, j'essaye de gratter une table de ce site https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspxmais je ne sais pas quoi écrire, je suis très confus.

Je suis en train d'essayer de gratter le tableau de la transaction kurs de 2015-2020 (20 nov 2015-20 nov 2020, mais le problème est que le lien entre la date par défaut et la date que j'ai choisie est toujours le même.Veuillez m'aider de quelque manière que ce soit, merci toi avant !

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)

Réponses

1 gosalia Nov 29 2020 at 15:29

Vous devez utiliser Selenium . Vous pouvez installer Selenium, puis vous pouvez installer un pilote . J'utilise chrome, puis une fois que vous l'installez, notez ce chemin et définissez votre DRIVER_PATHemplacement

Dans le code ci-dessous, je demande essentiellement le lien que vous avez posté, puis j'entre les dates que vous pouvez modifier. Enfin, je clique sur le bouton Soumettre. Cela génère la table dans la plage de dates. Vous pouvez maintenant écrire du code de suivi pour extraire les informations du tableau.

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