날짜를 기반으로 파이썬으로 테이블을 스크랩

Nov 28 2020

일주일 전부터 저는이 사이트에서 테이블을 긁어 내려고했습니다 https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspx그러나 나는 무엇을 써야할지 모르겠다. 나는 매우 혼란 스럽다. 2015 년부터 2020 년까지 kurs 거래 테이블을 긁으려고하는 iam (2015 년 11 월 20 일 ~ 2020 년 11 월 20 일,

하지만 문제는 기본 날짜와 내가 선택한 날짜 사이의 링크가 여전히 동일하다는 것입니다. 어떤 식 으로든 도와주세요. 감사합니다. 전에!

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