🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

2回答

732閲覧

Google spread sheetから検索キーワードをスクレイピングで抽出して検索し、その画像を取得したい

toshi_worldtrip

総合スコア3

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/03/20 09:00

編集2021/03/20 10:58

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Google spread sheetのB列から検索キーワードを抽出して検索し、その画像を取得したい
xpathでブロックを指定してsrc属性を抽出しようとしたが、なぜかsrcが空になってしまう

発生している問題・エラーメッセージ

none

該当のソースコード

Python

1from selenium import webdriver 2import time 3import csv 4import requests 5from bs4 import BeautifulSoup as bs4 6import gspread 7from selenium import webdriver 8from oauth2client.service_account import ServiceAccountCredentials 9 10driver = webdriver.Chrome(executable_path=r"/Applications/chromedriver") 11driver.get("https://www.rakuten.co.jp/") 12time.sleep(2) 13 14scope = ['https://spreadsheets.google.com/feeds', 15 'https://www.googleapis.com/auth/drive'] 16 17#jsonファイルを指定 18credentials = ServiceAccountCredentials.from_json_keyfile_name('xxx.json', scope) 19 20# 認証 21gc = gspread.authorize(credentials) 22 23# 読み込むスプレッドシートをファイル名で指定 24SPREADSHEET_URL='https://docs.google.com/spreadsheets/xxx' 25target_book = gc.open_by_url(SPREADSHEET_URL) 26 27# 読み込むシートをシート名で指定 28target_sheet = target_book.get_worksheet(0) 29 30for i in range(2,10): 31 32 #対象のセルに文字列を書き込み 33 Bi = target_sheet.cell(i,2).value 34 35 flame = driver.find_element_by_xpath('//*[@id="common-header-search-input"]') 36 flame.send_keys(Bi) 37 search = driver.find_element_by_xpath('//*[@id="wrapper"]/div[5]/div/div/div/div[1]/div/div/div/a/span/div') 38 search.click() 39 40 time.sleep(5) 41 src = driver.find_element_by_xpath('/html/body/div[3]/div[2]/div[3]/div/div[1]').get_attribute("src") 42 print(src) 43 time.sleep(3) 44 45 target_sheet.update_cell(i,3,src) 46 time.sleep(1) 47 48 driver.back() 49 time.sleep(2)

試したこと

xpath以外の方法で指定することも試してみましたが、うまくいきませんでした

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

src = のxpathがズレているのが原因でした

投稿2021/03/20 11:23

toshi_worldtrip

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

想像ですが

python

1 search = driver.find_element_by_xpath('//*[@id="wrapper"]/div[5]/div/div/div/div[1]/div/div/div/a/span/div') 2 search.click() 3 image = driver.find_element_by_xpath('/html/body/div[3]/div[2]/div[3]/div/div[1]').get_attribute("src") 4 src = print(image) 5 time.sleep(3)

ここでclick()した後sleep()しないで遷移後のページの解析をしようとしてるからじゃないですか?

投稿2021/03/20 09:16

xail2222

総合スコア1508

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toshi_worldtrip

2021/03/20 10:59

試してみましたが、相変わらずnoneのままでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問