webスクレイピングを行おうと、参考事例を検索し、以下のコードを作成しました。
このコードについて、実行すると
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
というエラーコードが発生してしまい、調べてみた対処方法をいくつか試しましたが、このエラーが一向に解消できない状況です。
(追記)エラーコードの全文は以下の通りです。
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
このコードを作成した当初は、このエラーが発生することなく動いていましたが、数日経って本日再度実行してみたところ、なぜかこれが発生するようになっていました。
該当のコードは以下の通りです。
python
1# -*- coding: utf-8 -*- 2from selenium import webdriver 3from selenium.webdriver.chrome.options import Options 4import time 5 6options = Options() 7options.add_argument('--headless') 8driver = webdriver.Chrome('C:/Program Files/chromedriver_win32/chromedriver.exe', options=options) 9html = driver.get("http://www.data.jma.go.jp/gmd/risk/obsdl/index.php") 10time.sleep(1) 11 12#各地域のid属性取得========================================================== 13pr_list = [] 14prefecture = driver.find_elements_by_class_name("prefecture") 15for pr in prefecture: 16 pr = pr.get_attribute("id") 17 pr_list.append(pr) 18#========================================================================== 19 20#各地域の観測地点名取得========================================================== 21stname_list = [] 22for i in pr_list: 23 #順番に各地域へアクセス 24 driver.find_element_by_xpath('//*[@id="{}"]'.format(i)).click() 25 time.sleep(1) 26 #その地域の観測地点情報の取得 27 stations = driver.find_elements_by_xpath('//*[@class="station"]') 28 for station in stations: 29 station.click() #地点選択 30 time.sleep(1) 31 #地点名取得 32 stname = station.find_element_by_name("stname").get_attribute("value") 33 stname_list.append(stname) 34 #全部選択し終わったらその地域から離れ、別の地域へ 35 driver.find_element_by_css_selector("#buttonSelectStation").click() 36 time.sleep(1) 37print(stname_list) 38
この中の
driver = webdriver.Chrome('C:/Program Files/chromedriver_win32/chromedriver.exe', options=options) この記述方法に問題があるのではないかと思い、以下の対処方法を試しましたが、
同じエラーが出る状態が続いています。
・'C:/Program Files/chromedriver_win32/chromedriver.exe'の先頭にrを加える
・/を\や\に変更する
他に調べた中でエンコード方法(utf-8としていること)に問題があるのではないか?という考えも浮かんだのですが、どう対処すればよいかまではわかりませんでした。
回答1件
あなたの回答
tips
プレビュー