【问题标题】:Python web scrape selenium / requestsPython网页抓取硒/请求
【发布时间】:2018-03-22 12:40:42
【问题描述】:

我正在尝试从此页面抓取结果:

https://results.chronotrack.com/event/results/event/event-24381

这是我可以手动执行的操作:

1) 在 chrome 中打开上面的 URL

2) 点击结果标签

2.5) 有时会改变比赛距离

3) 点击下一步进入第 2 页

4) 打开开发者工具/网络

5) 点击上一页返回第一页

6) 从开发者工具的 results-grid?callback 元素中获取请求 URL:

https://results.chronotrack.com/embed/results/results-grid?callback=results_grid17740402&sEcho=7&iColumns=11&sColumns=&iDisplayStart=0&iDisplayLength=100&mDataProp_0=0&mDataProp_1=1&mDataProp_2=2&mDataProp_3=3&mDataProp_4=4&mDataProp_5=5&mDataProp_6=6&mDataProp_7=7&mDataProp_8=8&mDataProp_9=9&mDataProp_10=10&raceID=60107&bracketID=638654&intervalID=121077&entryID=&eventID=24381&eventTag=event-24381&oemID=www.chronotrack.com&genID=17740402&x=1507682443198&_=1507682443198

一旦我走到这一步,我就可以操纵 DisplayStart 参数来获得其余的结果。

有没有办法让我使用请求和/或 selenium 找到该 URL?使用 Selenium,我尝试打开第一页,然后点击以下结果:

driver.find_element_by_id('resultsResultsTab').click()

但我收到以下错误:

Element is not currently visible and may not be manipulated

谁能帮我指出正确的方向?

【问题讨论】:

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


    【解决方案1】:

    尝试等到所需元素变得可见:

    from selenium.webdriver.support.ui import WebDriverWait as wait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    wait(driver, 10).until(EC.visibility_of_element_located((By.ID, 'resultsResultsTab'))).click()
    

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 2021-10-28
      • 1970-01-01
      • 2016-02-21
      • 2023-02-02
      • 2020-04-20
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      相关资源
      最近更新 更多