Warm tip: This article is reproduced from serverfault.com, please click

pandas-根据日期使用python抓取表格

(pandas - scraping table with python based on dates)

发布于 2020-11-29 03:19:35

从一周前开始,我一直在尝试从此网站抓取一张桌子 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)
Questioner
adinda aulia
Viewed
0
gosalia 2020-11-29 23:29:39

你需要使用Selenium你可以先安装Selenium,然后再安装驱动程序我使用chrome,然后在安装后记下该路径,然后将其设置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()