find_allで取得しようと思った際に以下のエラーメッセージが出てしまい、うまく取得することができなくなってしまっています。
例外が発生しました: ValueError
too many values to unpack (expected 6)
File "/Users/takayamakeitaakira/Desktop/ScrapingBeginner-main 2/keiba_oddsparkのコピー.py", line 97, in <module>
number,a, b, name, weight, jockey = tr_tag.find_all('td')
'td'の数をカウントもあっていると思うのですがどうしてもうまくいかないため改善方法がわかる方がいらっしゃれば是非教えていただけると幸いです。
以下が全体のコードになります。
pyhton
1 2コード 3 4# 標準的に搭載されているもの 5from time import sleep 6from bs4.element import Tag 7 8# もともと入っていないもの 9from selenium import webdriver 10from selenium.webdriver.chrome.options import Options 11from bs4 import BeautifulSoup 12import pandas as pd 13from pprint import pprint 14 15 16# 前提条件定義================================= 17mypage_id = 'ログインID' 18password = 'パスワード' 19security_number = '暗証番号' 20 21# chrome_pathを導入する 22chrome_path = '/Users/takayamakeitaakira/Desktop/ScrapingBeginner-main 2/chromedriver' 23 24# optionについて定義づけ!シークレットモードでwebを開く 25options = Options() 26options.add_argument('--incognito') 27driver = webdriver.Chrome(executable_path=chrome_path, options=options) 28 29 30# 実行開始============================================================ 31# マイページに入るーーーーーーーーーーーーーーーーーーーーーーーー 32url = ('https://www.oddspark.com/') 33driver.get(url) 34# input_section = driver.find_element_by_id('top2') 35 36id_box = driver.find_element_by_xpath('//*[@id="top2"]/div[1]/form/table/tbody/tr[1]/td/input') 37passwprd_box = driver.find_element_by_xpath('//*[@id="top2"]/div[1]/form/table/tbody/tr[2]/td/input') 38 39id_box.send_keys(mypage_id) 40passwprd_box.send_keys(password) 41 42driver.find_element_by_class_name('btn1').click() 43 44sleep(2) 45 46security_number_box = driver.find_element_by_xpath('//*[@id="contentS"]/form/table/tbody/tr/td/input') 47security_number_box.send_keys(security_number) 48driver.find_element_by_xpath('//*[@id="contentS"]/form/div/input').click() 49 50sleep(3) 51 52driver.find_element_by_xpath('//*[@id="simplemodal-container"]/a').click() 53 54sleep(3) 55 56# 競馬のページに入っていく========================================= 57driver.find_element_by_xpath('//*[@id="nav2"]/li[1]/a').click() 58 59sleep(1) 60# レース情報ページに 61driver.find_element_by_xpath('//*[@id="nav"]/ul/li[2]/a').click() 62sleep(1) 63 64# 1日出走に入っていく 65try: 66 driver.find_element_by_xpath('//*[@id="raceToday"]/div[1]/ul[4]/li[1]/a').click() 67except: 68 driver.find_element_by_xpath('//*[@id="date_pr"]/li/a').click() 69 driver.find_element_by_xpath('//*[@id="raceToday"]/div[1]/ul[4]/li[1]/a').click() 70 71sleep(1) 72 73 74# 情報獲得================================= 75d_list = [] 76 77html = driver.page_source.encode('utf-8') 78 79soup = BeautifulSoup(html, 'lxml') 80 81elements = soup.find_all('div', class_='w480px') 82 83 # レース名を取得 84 race_title = element.find('a') 85 tr_tags = element.find_all('tr') 86 87 88 for tr_tag in tr_tags[2:]: 89 90 number,a, b, name, weight, jockey = tr_tag.find_all('td') 91 92 d = { 93 'race_title':race_title, 94 'number':number, 95 'a':a, 96 'b':b, 97 'name':name, 98 'weight':weight, 99 'jockey':jockey 100 } 101 d_list.append(d) 102 103 pprint(d_list) 104