日付に基づいてPythonでテーブルをスクレイピング
Nov 28 2020
一週間前から私はこのサイトからテーブルをこすり取ろうとしています https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspxしかし、私は何を書くべきかわからない、私は非常に混乱しています。iamは2015-2020(2015年11月20日-2020年11月20日)のkursトランザクションのテーブルをスクレイプしようとしています

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)
回答
1 gosalia Nov 29 2020 at 15:29
Seleniumを使用する必要があります。Seleniumをインストールしてから、ドライバーをインストールできます。私はクロームを使用し、インストールしたらそのパスをメモDRIVER_PATH
して場所に設定します
以下のコードでは、基本的にあなたが投稿したリンクをリクエストし、変更できる日付を入力します。最後に、送信ボタンをクリックします。これにより、日付範囲内にテーブルが生成されます。これで、フォローアップコードを記述して、テーブルから情報を取得できます。
コード
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()