【问题标题】:How to Scrape a Dynamically Loaded Form如何抓取动态加载的表单
【发布时间】:2020-10-24 09:21:43
【问题描述】:

我需要一些帮助。我需要使用 Python 将 PDF 文件中的财务报表下载到我的 MAC。我已经尝试使用 Selenium 进行此操作,但遗憾的是无法取得进展。

以下是网址:psx

当我加载这个 URL 时,页面看起来像这样:

您会看到左侧“公司名称...”的下拉菜单,我需要在那里选择一个公司名称。其中,我可以使用以下代码进行选择:

driver = webdriver.Chrome(executable_path="driver-path")
driver.get("https://financials.psx.com.pk/")
elem = driver.find_element_by_id("country")
drp = Select(elem)
drp.select_by_value("SHEL")

一旦我这样做了,我就会看到一个像这样的窗口:

报告下的每个链接在点击时都会下载 PDF。我需要那些 PDF。问题是在Selection 之后URL 没有改变,但是表单会随着新页面更新。如何使用 Selenium 访问这个更新的区域?感谢任何帮助。

【问题讨论】:

    标签: javascript python python-3.x selenium web-scraping


    【解决方案1】:

    你可以这样做

    import time
    
    from selenium import webdriver
    from selenium.webdriver.support.ui import Select
    
    
    driver = webdriver.Chrome(executable_path='./chromedriver')
    driver.get("https://financials.psx.com.pk/")
    elem = driver.find_element_by_id("country")
    drp = Select(elem)
    drp.select_by_value("SHEL")
    
    time.sleep(10)
    
    for element in driver.find_elements_by_xpath('//a[@target="_blank"]'):
        element.click()
        time.sleep(1)
    
    driver.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      • 2021-10-15
      • 2012-04-15
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      相关资源
      最近更新 更多