我在Python中使用Selenium来抓取一个加载Javascript的站点,这是我的代码:[https://gist.github.com/elliotmartin/f9cb5021655f913f250b08f39a14dc9d][1]
由于某种原因,当我在不同的URL上循环时,get_boards函数将返回完全相同的结果。
例如:这个URL:
Gets:{“FAST44 44”:“1”,“迈斯迈尔”:“2”,“比萨”:“3”,“堆栈”:“4”,“头奖”:“5”,“加文”:“6”,“孟山都”:“7”,“维克托猎鹰”:“8”,“羚羊”:“9”,“罗兹”:“10”,“莫利诺”:“11”,“埃迪”:“12”,‘'SwitchSSB':'13','Rey':'14','wabeka':'15','Enrico':'16','TheRabbin':'17','Jalexander':'18','Itim':'19','Jay':'20','DuVlad':'21','Staz':'22','BanditKeith':'23','Akatsu':'24',‘'Montius':'25'}
这个网址是:
还获得:
{“FAST44 44”:“1”,“迈斯迈尔”:“2”,“比萨”:“3”,“堆栈”:“4”,“头奖”:“5”,“加文”:“6”,“孟山都”:“7”,“维克托猎鹰”:“8”,“羚羊”:“9”,“罗兹”:“10”,“莫利诺”:“11”,“埃迪”:“12”,‘'SwitchSSB':'13','Rey':'14','wabeka':'15','Enrico':'16','TheRabbin':'17','Jalexander':'18','Itim':'19','Jay':'20','DuVlad':'21','Staz':'22','BanditKeith':'23','Akatsu':'24',‘'Montius':'25'}
但是,在第二个URL上的Javascript加载的HTML中,这些值甚至都不存在。
所以selenium不能重新加载新的URL吗?我对硒很陌生,所以我认为这就是我的问题所在。
[
1]:https://gist.github.com/elliotmartin/f9cb5021655f913f250b08f39a14dc9d
发布于 2020-01-06 03:30:45
试着这样做:
driver.get('https://playhearthstone.com/en-us/api/community/leaderboardsData?region=US&leaderboardId=STD&seasonId=73')
rows = driver.execute_script("""
return JSON.parse(document.body.innerText).leaderboard.rows.reduce(function(acc, o){
acc[o.accountid] = o.rank
return acc
}, {})
""")我只是从端点获取api数据并将其返回到python
https://stackoverflow.com/questions/59605502
复制相似问题