首页 > 解决方案 > 基于硒日期的刮表

问题描述

我对 selenium 很陌生,现在我试图根据这个网站https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspx的日期来抓取表格,我想要什么从 2015 年 11 月到 2020 年 11 月,scrape 是 kurs 交易,但是当我尝试制作 selenium 选择过滤器 mata uang 和日期时,我陷入了困境和困惑。请告诉我该怎么办!先感谢您 在此处输入图像描述

这是我的代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import re
import time
from bs4 import BeautifulSoup
# Import webdriver to initialise a browser
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.get("https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspx")
for m in range(1):
    # Search for the button that allows to go back
    previous = driver.find_element_by_xpath(
        ' //*[@id="ctl00_PlaceHolderMain_biWebKursTransaksiBI_ddlmatauang1"]/option[24]')
    # Make click in that button
    ActionChains(driver).click(previous).perform()

当我试图用“FILTER MATA UANG”做事时,它给了我这个消息错误

JavascriptException:消息:javascript 错误:无法在“文档”上执行“elementsFromPoint”:提供的双精度值是非有限的。(会话信息:chrome=86.0.4240.198)

标签: pythonseleniumbeautifulsoupscreen-scraping

解决方案


我假设您的问题是您无法指定确切的日期。id 建议您点击需要使用该find_element_by_xpath().click功能输入日期“20-Nov-15”的字段,然后使用

element.send_keys(20-Nov-15) 

element.send_keys(ENTER) 

确认。
对插入“20-Nov-20”的其他字段进行处理,我希望它有效:D


推荐阅读