我一直在研究假的“赌注机器人”以学习硒,但是我无法关闭有时会出现在网站上的弹出窗口。
>我的方法是使用功能submit_bets()
;过滤后的游戏列表,格式为:
"League|team 1|team 2|Date|Probability in %|and prediction(1,X or 2)"
我从here获取数据。然后,对于每个已过滤的游戏,我都会在投注网站上打开联赛投注页面,然后浏览那里的所有游戏以查找已过滤的游戏并获得真实的赔率。对于filtered_games中的每个已过滤游戏,我需要打开下注网站的页面,如果弹出窗口出现,我将无法获取数据。
def submit_bets(filtered_games):
driver = webdriver.Chrome(PATH)
f=codecs.open("bets.txt","r", encoding='utf-8')
for line in filtered_games:
l=line.split("|")
print(l)
driver.get(leagues_to_links.get(l[0]))
scroll_down(driver)
time.sleep(2)
try:
button = driver.find_element(By.XPATH, "/html/body/div[1]/div/section[2]/div[7]/div/div/div[1]/button" )
driver.execute_script("arguments[0].scrollIntoView(true)", button)
button.click()
except:
print("no button")
games=driver.find_elements_by_class_name("events-list__grid__event")
for i in games:
game=str(i.text).split("\n")
try:
if forebet_teams_to_betano.get(l[1]) in game[2] and forebet_teams_to_betano.get(l[2]) in game[3]:
print(game)
if str(l[5]) == "1":
print("1")
print(str(game[7]))
elif str(l[5]) == "X":
print("X")
print(str(game[9]))
else:
print("2")
print(str(game[11]))
except:
print("")
In this link you can find the html of the page when the pop up shows up:
In this link you can find the page files, you might have to refresh it sometimes to get the pop up
感谢您的时间,随时留下任何提示来改进我的代码。
答案 0 :(得分:1)
我的解决方案:
#Closing popup for Portugese betting site
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
URL = "https://www.betano.pt/sport/futebol/ligas/17083r/"
# Browser options
options = Options()
options.headless = True
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference("browser.privatebrowsing.autostart", True)
browser = webdriver.Firefox(firefox_profile=firefox_profile)
browser.get(URL)
##### Copy this part into your own code #####
try:
browser.find_element_by_xpath('//button[@class="sb-modal__close__btn uk-modal-close-default uk-icon uk-close"]').click() # Click pop-up close button
print("Pop-up closed.")
except:
print("Pop-up button not found.")
#########
请记住,这依赖于按钮的特定类名。您需要将try-except最后修改为您自己的代码。