Javascript 如何在网上刮运动队投注线?
是否可以使用Selenium和BeautifulSoup对该网站进行web清理Javascript 如何在网上刮运动队投注线?,javascript,python,selenium,web-scraping,beautifulsoup,Javascript,Python,Selenium,Web Scraping,Beautifulsoup,是否可以使用Selenium和BeautifulSoup对该网站进行web清理 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
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) 传播:
-9½
需要信息:-9.5
b) 货币额度:
<td class="odds bdevtt moneylineodds displayOdds" cfg="{'a':-500,'d':1.2}">-500</td>
-500
需要信息:-500
c) 总分:
<td class="hdcp bdevtt ">212½</td>
212½
需要资料:212.5
d) 开始时间:
<td rowspan="3" class="col_time bdevtt">09:05 PM</td>
09:05下午
需要信息:晚上9: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)
我发现有两个单元格的类为
hdcp
,因此要得到“212½”
,您可以尝试将print(tr.find('td',{'class':'hdcp').text)
替换为print(tr.find_all('td',{'class':'hdcp')[1]。text)
谢谢您,先生@Andersson!我感谢你的评论。我会花一些时间来研究这个。
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)