Googleの検索結果を別タブ(javascript)で開いていく
行いたいこと Googleの検索結果を別タブで開いてみたいと思います。 実行結果は以下のイメージ。 コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
from bs4 import BeautifulSoup import time from selenium import webdriver driver = webdriver.Chrome("chromedriver_win32/chromedriver.exe") # 上位から何件までのサイトを抽出するか指定する pages_num = 3 # キーワード key_word = 'webスクレイピング' # Google検索で「webスクレイピング」の結果を格納する url = 'https://www.google.com/search?num={}&q={}'.format(pages_num,key_word) # URLを開く driver.get(url) time.sleep(3) # WebサイトのHTMLデータをBeautifulSoupで解析する soup = BeautifulSoup(driver.page_source,'html.parser') # 検索結果のまとまり page_titles = soup.find_all(class_="tF2Cxc") i = 1 # 1件別でURLを取得する for page_title in page_titles: url = page_title.find("a").get("href").replace('/url?q=','') print("url = " , url) # タブを右隣に新規追加 driver.execute_script("window.open()") # 操作対象のタブを追加したタブに設定 driver.switch_to.window(driver.window_handles[i]) # 検索結果から取得したURLへ遷移させる driver.get(url) # タブを右に追加していきたいので数字をプラスする i = i + 1 time.sleep(2) # 開き終わったら一番左のタブへ操作対象を戻す driver.switch_to.window(driver.window_handles[0]) |
解説 タブで開く前に、開く先のURLを取得して…