【问题标题】:scraping table with python based on dates基于日期用python刮表
【发布时间】:2020-11-29 03:19:35
【问题描述】:

从一周前开始,我一直试图从这个网站上刮一张桌子https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspx,但我不知道该写什么,我很困惑。 我试图从 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)

【问题讨论】:

  • 我不清楚您所说的从 2015 年到 2020 年是什么意思?有没有办法生成那个确切的链接?如果是这样,我可以尝试编码。
  • 我想获取 2015 年 11 月 20 日 - 2020 年 11 月 20 日的数据,我已经编辑了上面的问题
  • 问题是当您选择两个不同的日期时,它不会在 url 中生成查询参数,因此您需要使用 python selenium 进行网络抓取。我当然可以为您提供有关如何从表中抓取数据的代码,但您将无法使用 bs4 来抓取特定日期的数据。
  • 谢谢..那么我必须先安装 selenium..关于代码你介意告诉我吗?或者可能只是剪掉它..对不起,因为我真的不知道如何得到它。谢谢你!
  • 我发布了一个解决您的日期范围问题的解决方案。现在您可以尝试抓取生成的表格,如果遇到问题,您可以将其作为单独的问题发布。干杯。

标签: python pandas screen-scraping scrape


【解决方案1】:

您需要使用Selenium。您可以安装 Selenium,然后您可以安装 driver。我使用 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()

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多