是否可以使用 Selenium 和 BeautifulSoup 来抓取此网站?
https://www.betonline.ag/sportsbook/basketball/nba
我是网络抓取的新手,之前没有编码经验。以下是我对 NBA 球队的尝试:
#import modules
from bs4 import BeautifulSoup
import requests, os
import pandas as pd
from selenium import webdriver
os.chdir('C:\webdrivers')
#enter your user-agent
header = {'User-agent' : 'your user-agent'}
options = webdriver.ChromeOptions(); options.add_argument("--start-maximized")
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.betonline.ag/sportsbook/basketball/nba')
#scrape data
soup = BeautifulSoup(driver.page_source, 'html.parser')
driver.quit()
#parse data (Teams)
team = [i.text for i in soup.find_all('td', {'class': 'col_teamname bdevtt'})]
print(team)
上面的代码成功地按照我想要的方式抓取了团队。
我现在想抓取投注信息:a) 点差、b) 输赢盘、c) 总积分和 d) 开始时间。
a) 传播:
<td class="hdcp bdevtt ">-9½</td>
所需信息:-9.5
b) 金钱线:
<td class="odds bdevtt moneylineodds displayOdds" cfg="{'a':-500,'d':1.2}">-500</td>
所需信息:-500
c) 总分:
<td class="hdcp bdevtt ">212½</td>
所需信息:212.5
d) 开始时间:
<td rowspan="3" class="col_time bdevtt">09:05 PM</td>
需要信息:晚上 09:05
我注意到这 4 项的数据位于 td 类中。我尝试了与上面类似的代码,但没有成功。不确定是否是因为代码是用 JavaScript 编写的。如果是这样,是否有办法使用 BS4 和 Selenium 提取代码?
如有任何建议,我们将不胜感激。感谢您的宝贵时间!
最佳答案
尝试下面的代码来获取所需的值:
for tr in soup.find_all('tr', {'class': 'firstline'}):
print(tr.find('td', {'class': 'col_teamname'}).text)
print(tr.find('td', {'class': 'hdcp'}).text)
print(tr.find('td', {'class': 'moneylineodds'}).text)
print(tr.find('td', {'class': 'col_time'}).text)
关于javascript - 如何网络抓取运动队投注线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53202393/