Python Selenium不';无法获取网页的所有元素

Python Selenium不';无法获取网页的所有元素,python,selenium,selenium-webdriver,web-scraping,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Web Scraping,Selenium Chromedriver,我正在尝试从此网页获取跑步者的数据:。我知道使用requests.get或requests.post的简单方法在这里不起作用,所以我尝试使用selenium和webdriver。我编写了以下代码: browser = webdriver.Chrome() browser.get('http://results.nyrr.org/event/M2016/finishers') html = browser.page_source soup = BeautifulSoup(html, "lxml")

我正在尝试从此网页获取跑步者的数据:。我知道使用
requests.get
requests.post的简单方法在这里不起作用,所以我尝试使用selenium和webdriver。我编写了以下代码:

browser = webdriver.Chrome()
browser.get('http://results.nyrr.org/event/M2016/finishers')
html = browser.page_source
soup = BeautifulSoup(html, "lxml")
table = soup.find("div", attrs={"ng-show": "eventFinishers.length > 0"})
table2 = table.findAll("div", {"class": "cmd-finisher ng-scope", "ng-repeat": "eventFinisher in eventFinishers"})
问题是,我没有得到完全相同的信息,是在网上提供的,我可以看到在Chrome开发工具。 例如,对于第一名选手,我没有在性别天主教会中获得一席之地。应该是1,但我认为它是空的。然而,我得到了“性别场所”这个名字。年龄组、总体持枪地点、团队和其他信息也是如此:

>>> print(table2[0].text)
Ghirmay Ghebreslassie
M20
ERI
Place: 1
Pace: 04:53
Bib: 2
View Runner's Page
Expand Results
Expand
2:07:51
2:07:51
Gender/Age:M20

Team:
Official Time
2:07:51
Pace Per Mile
04:53
Overall Place
1
Gender Place
Age-Group Place
Overall Gun Place
Age-Graded Time
Age-Graded Place
Age-Graded %
NaN%
View in Graph
Go To Runner's Page
Compare this runner
Request Corrections
Close
Created with Highcharts 4.2.1Chart titleHighcharts.com
Go back to detail view

此外,使用此代码,我无法获得“5K分割”、“10k分割”名称下的信息

我已检查此信息不在
html=browser.page\u source
中,因此问题可能是webdriver没有正确加载网页。是否可以使用selenium webdriver获取我想要的信息?
我怎样才能解决这个问题?如果不可能,我还有什么其他选择?(我使用的是python 3)

使用以下内容查找包含位置的span元素:
浏览器。通过xpath('//span[contains(text(),“place:”)]')查找元素。
。之后,从该元素获取文本并替换该字符串中的“Place:”。此外,使用此代码,我无法获得“5K分割”、“10k分割”名称下的信息。信息仅在单击“展开结果”时加载,找到所有结果,单击每个结果并获取所需信息。要单击其中一个,您可以执行以下操作:
从selenium.webdriver.common.by import by
然后
浏览器。查找_元素(by.CSS_SELECTOR,“.col-xs-3.col-sm-3.col-md-3.expand box”)。单击()
@sen4ik,如果我为“性别地点”执行此操作,我无法获取地点编号。@ViníciusAguiar,这很有效!非常感谢。还有一个问题:如果我必须下载51275个结果,是否需要同时单击所有结果?有没有更有效的方法呢?嗯,我不知道有没有更有效的方法来处理这个问题,一次加载所有这些文件肯定会使浏览器崩溃。