Python web scrape selenium / requests

时间:2017-10-11 00:47:52

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

我试图从这个页面中删除结果:

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

有人能让我指出正确的方向吗?

1 个答案:

答案 0 :(得分: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()