Bet365のスクレイピング
まずは下準備
Selenium起動!
class SeleniumDriver : def __init__(self, link) : self.browser = webdriver.Chrome("C:/Users/A/Downloads/chromedriver_win32/chromedriver.exe") self.browser.implicitly_wait(10) self.browser.get(link) #link = "https://www.bet365.com"
手動で試合の画面にいく(今回はサッカー)
Let's スクレイピング
今回は対戦カードの名前と、それぞれのFulltimeResultのオッズをとってきます。
Fulltime Resultを含む要素を検索
self.browser.find_element_by_xpath("//*[contains(text(),'Fulltime Result') or contains(text(),'Goal')]").get_attribute('innerHTML')
取りたい要素を右クリックして、「検証」
Developer ToolでFulltime Resultの要素からのPathを確認する。
Pathをいい感じに更新
self.browser.find_element_by_xpath("//*[contains(text(),'Fulltime Result') or contains(text(),'Goal')]/../../div[2]/div[1]/div/div[1]/span").get_attribute('innerHTML')
Jupyterで結果を確認。Pathを変えて、結果確認してを繰り返せば、割と目的のPath見つかります。
ほかのPathはこんなん
gameInfo["awayName"] = self.browser.find_element_by_xpath("//*[contains(text(),'Fulltime Result') or contains(text(),'Goal')]/../../div[2]/div[1]/div/div[3]/span").get_attribute('innerHTML') #awayチームの名前 gameInfo["homeOdds"] = self.browser.find_element_by_xpath("//*[contains(text(),'Fulltime Result') or contains(text(),'Goal')]/../../div[2]/div[1]/div/div[1]/span[2]").get_attribute('innerHTML') #ホームチームのオッズ gameInfo["drawOdds"] = self.browser.find_element_by_xpath("//*[contains(text(),'Fulltime Result') or contains(text(),'Goal')]/../../div[2]/div[1]/div/div[2]/span[2]").get_attribute('innerHTML') #ドローのオッズ gameInfo["awayOdds"] = self.browser.find_element_by_xpath("//*[contains(text(),'Fulltime Result') or contains(text(),'Goal')]/../../div[2]/div[1]/div/div[3]/span[2]").get_attribute('innerHTML') #アウェイチームのオッズ