既に以下で紹介するような良い作例や記事があったんですが、手元で調べている間に作ってしまったので公開します。
▼参考記事
【初心者向け】Pythonでスクレイピングする環境を作る⑤ Google検索をしてみる|Naruhiko|note
ColaboratoryでSeleniumが使えた:JavaScriptで生成されるページも簡単スクレイピング – Qiita
状況説明
ローカルPC内で使うスクレイピングツールの無料リクエストの限界がきてしまったため、自作で簡単にGoogle検索の結果をコピペしやすくします。
Google側は、スクレイピングを規約上禁止している認識なので、検索結果に大量にスクレイピングをかけることはやめたほうがいいはずです。
コピーペーストの補助のためのスクレイピングでした。
想定利用環境はこちら
Colaboratory へようこそ – Colaboratory
import requests from bs4 import BeautifulSoup try: # urlを代入 url = "https://www.google.com/search?q=%E5%AE%85%E9%A3%B2%E3%81%BF+%E3%82%BB%E3%83%83%E3%83%88+%E3%83%86%E3%82%A4%E3%82%AF%E3%82%A2%E3%82%A6%E3%83%88&oq=%E5%AE%85%E9%A3%B2%E3%81%BF%09%E3%82%BB%E3%83%83%E3%83%88%09%E3%83%86%E3%82%A4%E3%82%AF%E3%82%A2%E3%82%A6%E3%83%88&aqs=chrome..69i57.7788055j0j0&sourceid=chrome&ie=UTF-8" # データ取得 resp = requests.get(url) # 要素の抽出 soup = BeautifulSoup(resp.text, "html.parser") tags = soup.find_all("h3") # タグ内テキスト for tag in tags: print(tag.get_text()) except: print("取得できませんでした")
実行すると出力は以下になります。
人気店の宅飲みセットを自宅にお届け!テイクアウト店情報 ... - エキサイト 人気店の宅飲みセットを自宅にお届け!テイクアウト店 ... - ニコニコニュース 【テイクアウト】家飲みセット⇒980円 | 居酒屋 魚炭 うおたん(居酒屋 ... テイクアウト 宅飲みセット - 居酒屋 あじろ - グーペ コロナに負けるな!宅飲み応援おつまみセット新登場! | 獏の棲む森の ... たべものコンサル日記㉝「家飲みセット」「ファミリー夕食セット」販売を ... てけてけテイクアウトメニュー 家飲みを楽しくするおつまみテイクアウトのすすめ 居酒屋さんを応援しよう ... 居酒屋 まる メニュー:宅飲み用持ち帰り - ぐるなび
h3タグ取得のためのカスタマイズ
h3を取得しにいっています。
!apt-get update !apt install chromium-chromedriver !cp /usr/lib/chromium-browser/chromedriver /usr/bin !pip install selenium from selenium import webdriver from selenium.webdriver.chrome.options import Options from bs4 import BeautifulSoup options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome('chromedriver',options=options) try: # urlを代入 url = "https://www.google.com/search?q=%E5%AE%85%E9%A3%B2%E3%81%BF+%E3%82%BB%E3%83%83%E3%83%88+%E3%83%86%E3%82%A4%E3%82%AF%E3%82%A2%E3%82%A6%E3%83%88&oq=%E5%AE%85%E9%A3%B2%E3%81%BF%09%E3%82%BB%E3%83%83%E3%83%88%09%E3%83%86%E3%82%A4%E3%82%AF%E3%82%A2%E3%82%A6%E3%83%88&aqs=chrome..69i57.7788055j0j0&sourceid=chrome&ie=UTF-8" driver.get(url) # 要素の抽出 html = BeautifulSoup(driver.page_source, "lxml") tags = html.find_all('h3') # タグ内テキスト for tag in tags: print(tag.get_text()) tags = html.select('span.st') # タグ内テキスト for tag in tags: print(tag.get_text()) except: print("取得できませんでした")
、
当サイトはリンクフリーです。
ご自身のブログでの引用、TwitterやFacebook、Instagram、Pinterestなどで当サイトの記事URLを共有していただくのは、むしろありがたいことです。
事前連絡や事後の連絡も不要ですが、ご連絡いただければ弊社も貴社のコンテンツを紹介させていただく可能性がございます。