前提・実現したいこと
特定の検索ワードで検索、結果から一致するものがあれば取得というスクレイピングがしたいです。
例
鈴木太郎と検索
鈴木太郎が記述されているページのリンクを取得する
ですが、googleで違うurlになるのか謎のURLに飛びます。
こんな感じのやつです。
https://www.google.co.jp/search?q=%22info@%22+検索ワード&sa=X&ved=2ahUKEwjk1pCrl6T0AhXLA4gKHb1HDe4Q5dt4CegQIERAB&biw=1200&bih=845&dpr=2
googleが対策をしてhtmlを変えているというのは知っていてその対策?をしたのですがダメでした。
発生している問題・エラーメッセージ
該当するページに飛べない
該当のソースコード
python
1from selenium import webdriver 2from selenium.webdriver.common.keys import Keys 3import chromedriver_binary 4from selenium.webdriver.common.action_chains import ActionChains 5from selenium.webdriver.chrome.options import Options 6from time import sleep 7import random 8import csv 9import datetime 10 11 12def access(): 13 driver.get('https://www.google.co.jp') 14 search_bar = driver.find_element_by_name("q") 15 keyword = '検索ワード' 16 search_bar.send_keys(keyword) 17 search_bar.submit() 18 # 検索 19 try: 20 word = driver.find_element_by_xpath("//span[contains(text(), '@')]//..//..//..//div/a") 21 print(word) 22 word.click() 23 except: 24 print('なし') 25 26 27if __name__ == '__main__': 28 user_agent = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36', 29 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', 30 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36', 31 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36' 32 ] 33 34 options = webdriver.ChromeOptions() 35 options.add_argument('--user-agent=' + user_agent[random.randrange(0, len(user_agent), 1)]) 36 37 driver = webdriver.Chrome(chrome_options=options) 38 sleep(1) 39 40 access()
補足情報(FW/ツールのバージョンなど)
mac
python3.8.8
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。