![見出し画像](https://assets.st-note.com/production/uploads/images/31464552/rectangle_large_type_2_d89670dc33ddfcf610d1fb864353282f.jpg?width=800)
【Python】Google検索の結果をスクレイピングでコピペしやすくする方法【簡単】
移転しました。
【Python】Google検索の結果をスクレイピングでコピペしやすくする方法【簡単】 | ムノログ
こちらのURLのソース、【初心者向け】Pythonでスクレイピングする環境を作る⑤ Google検索をしてみるや、ColaboratoryでSeleniumが使えた:JavaScriptで生成されるページも簡単スクレイピングを確認しながら作ってみます。
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円 | 居酒屋 魚炭 うおたん(居酒屋 ...
テイクアウト 宅飲みセット - 居酒屋 あじろ - グーペ
コロナに負けるな!宅飲み応援おつまみセット新登場! | 獏の棲む森の ...
たべものコンサル日記㉝「家飲みセット」「ファミリー夕食セット」販売を ...
てけてけテイクアウトメニュー
家飲みを楽しくするおつまみテイクアウトのすすめ 居酒屋さんを応援しよう ...
居酒屋 まる メニュー:宅飲み用持ち帰り - ぐるなび
出力はこうなります。
カスタマイズ
!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("取得できませんでした")
このまま動くと思います。
Google側は、スクレイピングを規約上禁止している認識なので、検索結果に大量にスクレイピングをかけることはやめたほうがいいはずです。
コピーペーストの補助のためのスクレイピングでした。
いつもお読みいただき、ありがとうございます。 書くだけでなく読みたいので、コメント欄で記事名入れてもらうと見に行きます。