【发布时间】:2018-11-10 22:53:39
【问题描述】:
我想从https://www.bovada.lv 刮取 NBA 球员的道具投注。我将问题命名为 ADVANCED,因为有多个团队、球员和类别。
这是所要求的 HTML 代码:
以下链接可将您直接带到篮球部分:https://www.bovada.lv/sports/basketball。
开始...
NBA 球员道具位于篮球区。如果您单击每个游戏旁边的箭头或“>”,它将带您进入另一个投注页面。如果玩家道具已发布,您可以在页面底部附近的“玩家道具”部分找到它们(注意:道具在游戏开始前发布)。
这是我正在寻找的一位玩家的数据样本:
Total Points - LeBron James (LAL)
28.5 -115 -115
我想抓取所有球员的姓名、类别和投注赔率。不幸的是,我没有走得太远。到目前为止我所学的方法都没有成功。
#import modules
from bs4 import BeautifulSoup
import requests, os
from selenium import webdriver
#initiate Selenium
os.chdir('C:\webdrivers')
#enter user agent
header = {'User-agent' : 'ENTER USER_AGENT HERE'}
options = webdriver.ChromeOptions(); options.add_argument("--start-maximized")
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.bovada.lv/sports/basketball/nba')
soup = BeautifulSoup(driver.page_source, 'html.parser')
driver.quit()
#attempt at printing soup
print(soup)
我在代码中找不到任何相应的玩家。我认为寻求帮助不会有什么坏处。也许有更多经验的人知道如何做到这一点,或者可以帮助我朝着正确的方向前进。
我是网络抓取的新手,非常感谢您提供的任何帮助。提前感谢您的宝贵时间!
【问题讨论】:
-
您可能可以编写一些简单的东西来抓取页面链接,然后遍历它们导航到它们(如果使用 selenium)调用自定义函数,该函数提取返回列表所需的信息并从中构建最终数据框列表列表。假设所有项目都出现在每个页面上。无论如何,开始的想法。
-
@QHarr... 这有帮助吗?如果需要,我可以再吃一些。
-
那么,这是您导航到的页面之一?您可以右键单击检查并在开发工具上复制 html 元素(在页面顶部)并将 html 粘贴到 pastebin 中吗?对于您所展示的内容,我只能说 -115 可以由 .bet-price 的 css 选择器选择,但我不知道这种情况发生的频率以及每个道具是否存在(可能但看不到)。另外,看不到其他信息。
-
由于我无法正确查看页面,因此很难确定,但看起来您最初可以使用类名来隔离信息。例如,标题在 .league-header 的 css 选择器中,然后在 .coupon-content.markets-container 中的其余信息。如果可以查看该页面的人提供进一步的帮助,恐怕会更好。
标签: javascript python selenium web-scraping beautifulsoup