大家晚上好
我正在尝试从这个网站提取数据:
https://classic.sportsbookreview.com/betting-odds/nba-basketball/
程序逻辑基于以下循环。你知道吗
一旦网站上的页面打开,第一步就是打开日历,看看这个月是否有比赛。你知道吗
如果是这样的话,每一天的数据都会被写入xls文件。然后,当不再有匹配项可提取时,程序单击上一个月,并执行相同的语句。你知道吗
相反,如果一个月内没有一天进行过比赛,治疗人员会点击前一个月,并执行与之前相同的陈述。你知道吗
这是我的代码(抱歉用法语,如果不清楚,我可以翻译):
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import xlsxwriter
## Création du fichier excel
tableur = xlsxwriter.Workbook("PrédictionMachine.xlsx") ;
feuille1 = tableur.add_worksheet("10-05-2018") ;
## Ouverture du navigateur (pour Chrome, remplacer Firefox par Chrome)
navigateur = webdriver.Firefox() ;
navigateur.get("https://classic.sportsbookreview.com/betting-odds/nba- basketball/") ;
time.sleep(3) ;
## Initialisation des variables nécessaires pour écriture dans tableur
row = 0 ;
col = 0 ;
moistraite = 0 ;
matchtreeltrouve = 0 ;
## PHASE TEST À SUPPRIMER EN VF
passage = 0
try :
## Boucle : le programme s'arrête lorsque qu'une touche quelqconque du clavier est pressée
while True :
## Ouverture du calendrier
print("Passage : ", passage)
Calendrier = navigateur.find_element_by_xpath("//a[@class='dd-go-button']").click()
time.sleep(3)
## Récupération du mois/année en cours de traitement
Mois = navigateur.find_element_by_xpath("//h2[@class='tbl-cal-top-middle']")
## Si aucun match n'est joué ce mois-ci, le programme clique sur le mois précédent
if not (navigateur.find_elements_by_xpath("//a[contains(@onclick, '20')]")) :
print("------------------------------------------------")
print("Aucun match trouvé pour le mois de :", Mois.text)
print("------------------------------------------------")
Moisprecedent = navigateur.find_element_by_xpath("//img[@alt='Left Arrow']").click()
moistraite += 1
print("------------------------------------------------")
print("Nombre de mois traité :", moistraite) ;
print("------------------------------------------------")
time.sleep(3) ;
else :
## Récupération de tous les jours du mois où un match a supposément été joué
JMtheorique = navigateur.find_elements_by_xpath("//a[contains(@onclick, '20')]")
print("------------------------------------------------")
print("Matchs supposés trouvés pour le mois de :", Mois.text)
print("------------------------------------------------")
for jmtheorique in JMtheorique :
print("ON Y CROIT", jmtheorique.text)
navigateur.find_element_by_xpath("//a[contains(@onclick, 'OddsEvent.GetLinkDate')]").click()
time.sleep(3)
passage += 1
Calendrier = navigateur.find_element_by_xpath("//a[@class='dd-go-button']").click()
time.sleep(2)
Moisprecedent = navigateur.find_element_by_xpath("//img[@alt='Left Arrow']").click()
moistraite += 1
## Arrêt Manuel du programme
except KeyboardInterrupt :
print("!/_\/_\/_\! Interruption manuelle du programme !/_\/_\/_\! ")
print("Le programme a été stoppé au mois de :", Mois.text)
print("Nombre de mois traité :", moistraite)
print("Nombre de match écrit :", matchtreeltrouve) ;
##navigateur.quit()
现在,我只想浏览不同的月份/日期。 对于八月,源代码运行良好。你知道吗
但当我七月份到达时,程序正在循环。似乎“如果不是”的说法写得不对,因为治疗找到了匹配,而这个月没有一场比赛。你知道吗
好吧,我想我明白我的问题了。当我打开日历时,上个月/下个月的某些日子似乎就在眼前。当治疗到7月份时,8月4日(一个玩游戏的日子)也出现在日历上,这就解释了为什么这个程序在7月和8月之间循环。我只需要提取td中包含的a href,而不需要提取td类中包含的a href,如下所示:
The calendar
The kind of a href I need
我将进一步调查,以了解如何做到这一点。谢谢你的帮助。你知道吗
相关问题 更多 >
编程相关推荐