Python Selenium没有获取网页的所有元素

时间:2017-07-27 01:05:50

标签: python selenium selenium-webdriver web-scraping selenium-chromedriver

我试图让跑步者'来自此网页的数据:http://results.nyrr.org/event/M2016/finishers。我知道使用requests.getrequests.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,但我认为它是空的。但是,我得到了名字" Gender Place"。年龄组,整体枪支,团队和其他信息也是如此:

>>> 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 split"," 10k split" ...

的名义获取信息

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

0 个答案:

没有答案