スクレイピングのコードを書いているのですが、web画面遷移でてこずっております
やりたいこと
1.ブラウザを立ち上げる
↓
2.スクレイピングしたいページを開く
↓
3.そのページに個別ページのリンクが集まっているのでfor文にてそれぞれの個別ページを開く
↓
4.個別ページにて、xpathを利用して取得したい情報を取得
といった流れでやっておりますが、3から4へのリンク遷移でつまづいております。
javascriptのコードも一部借りてやろうとしておりまして、そこで構文エラーが起きています。あまり精通してないことから文法のミスなのかと思われますが、調べても中々見つけることができなかったためどなたかお力お貸ししていただけないでしょうか??
## ライブラリインポート等の部分。省略 ## #ここから下が1から2の部分のコードで正常に動いているのが確認できています。 chrome_options=options) from selenium import webdriver import chromedriver_binary driver = webdriver.Chrome() print('aaaa') driver.get('スクレイピング先URL') WebDriverWait(driver,10).until(EC.presence_of_all_elements_located) #ここから上が1から2の部分のコードで正常に動いているのが確認できています。 #問題の部分 for element in driver.find_elements_by_xpath('//div[1]/div[4]/div/ul/li/a'): link = element.get_attribute('href') driver.execute_script('window.open(#{link})') time.sleep(3) driver.switch_to.window(driver.window_handles[1]) for i, element_more in enumerate(driver.find_elements_by_xpath('/div[1]/div[4]/div[2]/div/div/a'),1): link_more = element_more.get_attribute('href') driver.execute_script('window.open(#{link_more});') driver.switch_to.window(driver.window_handles[1]) #ここから下にデータ取得コードが入ります #ここから上にデータ取得コードが入ります driver.close() # Switch back to the first tab driver.switch_to.window(driver.window_handles[0]) time.sleep(1) driver.close() # Switch back to the first tab driver.switch_to.window(driver.window_handles[0])
エラー分
raise exception_class(message, screen, stacktrace) selenium.common.exceptions.JavascriptException: Message: javascript error: Invalid or unexpected token (Session info: chrome=86.0.4240.75)
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー