質問: image_info df ``` ### 問題点 このままですと、画像のURLリンクがコラムに入りますが、 画像は表示されず、文字として入力されてしまいます。 画像としてデータフレームに挿入することは可能でしょうか? よろしくお願いします。
回答: > > このままですと、画像のURLリンクがコラムに入りますが、 > > 画像は表示されず、文字として入力されてしまいます。 > > > 別途、画像データをダウンロードする必要があります。`requests`を使えば比較的簡単にできます。 > > 画像としてデータフレームに挿入することは可能でしょうか? > > > 「画像として」という要件がよく分かりませんが、バイナリデータそのまま挿入することができます。 以上の動作をするサンプルコードを示します。 ``` from selenium import webdriver driver = webdriver.Chrome(executable_path=r"~") url = 'https://www.python.org/' driver.get(url) from urllib.parse import urljoin import requests srcs,imgs = [],[] # ソースURLと画像データ elems = driver.find_elements_by_tag_name('img') for e in elems: src = e.get_attribute('src') img = requests.get(urljoin(url, src)).content # 画像データをダウンロード srcs.append(src) imgs.append(img) driver.quit() # データフレームを構築し、CSVに保存 import pandas as pd df = pd.DataFrame({'src':srcs,'img':imgs}) df.to_csv('ret.csv',index=False) ``` ret.csv ``` src,img https://www.python.org/static/img/python-logo.png,"b'\x89PNG\r\n\x1a~以降省略~ ``` ただし画像をデータフレームに入れるくらいなら、別途画像用ディレクトリにダウンロードしておき、データフレームには画像ファイルへのパス情報だけを持たせるほうがよいと思います。 理由については以下ページ参照ください。 データベースに画像を保存するのはありでしょうか?