【问题标题】:Trying to scroll and scrape a dynamically loaded webpage尝试滚动和抓取动态加载的网页
【发布时间】:2019-03-12 01:53:58
【问题描述】:

我正在尝试收集此网页上找到的每场比赛的所有可用赔率: https://www.sportsbookreview.com/betting-odds/nfl-football/?date=20170917

我知道网页是动态加载的,所以我尝试插入一个滚动条,希望它能在滚动时加载所有可用的赔率,但不幸的是,这似乎并非如此,因为它只是删除了以前加载的数据随着它继续滚动。

我已经尝试过实施类似的帖子,但我仍然无法解决它。下面粘贴的是我的代码。

import selenium
from selenium import webdriver

url= 'https://www.sportsbookreview.com/betting-odds/nfl-football/?date=20170917'
driver = webdriver.Chrome()
driver.get(url)
driver.execute_script("window.scrollTo(0, 900)") 

odds_finder=driver.find_elements_by_class_name('_3h0tU')

file_odds = []
for x in odds_finder:
    x=x.text
    file_odds.append(x)

driver.quit()

file_odds 的输出粘贴在下面,但正如您可以看出的,第一个元素只是游戏的“开场白”和“赌注”行,而不是可用赔率的其余部分,例如在列表后面的部分中被刮掉。对此的任何帮助将不胜感激。

['64%',
 '36%',
 'PK-110',
 'PK-110',
 '56%',
 '44%',
 '+7½-110',
 '-9+105',
 '58%',
 '42%',
 '+7-105',
 '-7-115',
 '66%',
 '34%',
 '-4½-110',
 '+4½-110',
 '49%',
 '51%',
 '-7-110',
 '+7-110',
 '45%',
 '55%',
 '+4½-110',
 '-4½-110',
 '49%',
 '51%',
 '+7½-130',
 '-7½+110',
 '+8½-104',
 '-8½-106',
 '+8½-105',
 '-8½-105',
 '+8-110',
 '-8-110',
 '+8½-110',
 '-8½-110',
 '+9-110',
 '-9-110',
 '+8½-105',
 '-8½-105',
 '53%',
 '47%',
 '+6-110',
 '-6-110',
 '+7-100',
 '-7-110',
 '+7-105',
 '-7-105',
 '+7-119',
 '-7-101',
 '+7-110',
 '-7-110',
 '+7-110',
 '-7-110',
 '+6½+105',
 '-6½-115',
 '49%',
 '51%',
 '+4-110',
 '-4-110',
 '+3½-105',
 '-3½-105',
 '+3½-105',
 '-3½-105',
 '+3½-110',
 '-3½-110',
 '+3½-110',
 '-3½-110',
 '+3½-110',
 '-3½-110',
 '+3½-110',
 '-3½+100',
 '37%',
 '63%',
 '+14½-120',
 '-14½+100',
 '+14-100',
 '-14-110',
 '+14-105',
 '-14-105',
 '+14-114',
 '-14-106',
 '+14-110',
 '-14-110',
 '+14+100',
 '-14-120',
 '+13½+105',
 '-13½-115',
 '53%',
 '47%',
 '+3-120',
 '-3+100',
 '+3-106',
 '-3-104',
 '+3-110',
 '-3+100',
 '+3-112',
 '-3-108',
 '+3-110',
 '-3-110',
 '+3-105',
 '-3-115',
 '+3-105',
 '-3-105',
 '60%',
 '40%',
 '-1-120',
 '+1+100',
 '-2½-100',
 '+2½-110',
 '-2½-103',
 '+2½-107',
 '-2½-105',
 '+2½-115',
 '-2½-118',
 '+2½-102',
 '-3-105',
 '+3-115',
 '-2½-105',
 '+2½-105',
 '41%',
 '59%',
 '+14-130',
 '-14+110',
 '+13½-110',
 '-13½-100',
 '+13½-108',
 '-13½-102',
 '+13½-115',
 '-13½-105',
 '+13½-110',
 '-13½-110',
 '+14-105',
 '-14-115',
 '+13½-105',
 '-13½-105',
 '51%',
 '49%',
 '+2½+100',
 '-2½-120',
 '+3½-110',
 '-3½-100',
 '+3+108',
 '-3-118',
 '+3+105',
 '-3-125',
 '+3+110',
 '-3-130',
 '+3-105',
 '-3-115',
 '+3+110',
 '-3-120']

【问题讨论】:

    标签: python python-3.x selenium selenium-webdriver beautifulsoup


    【解决方案1】:

    尝试:

    //div[contains(@class,'_3A-gC')]//section//div[starts-with(@class, '_3h0tU')]

    【讨论】:

    • 谢谢,我正在尝试使用它,但收到一个错误,提示不允许复合类,您介意告诉我如何将它包含在我的原始脚本中吗?
    • 真的很抱歉,我意识到这是一个 Xpath 我认为?我试过了,但它仍然没有给我全部的可能性,除非我错过了什么
    • 您能指定缺少哪些内容吗?
    猜你喜欢
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多