<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>自動化 | リョクちゃの電脳日記</title>
	<atom:link href="https://dreamparadaisu.com/tag/%E8%87%AA%E5%8B%95%E5%8C%96/feed/" rel="self" type="application/rss+xml" />
	<link>https://dreamparadaisu.com</link>
	<description>今まで学んできたことや、新たに学んだこと、趣味を通して様々な人と共有できたらなと思いはじめた電脳日記。</description>
	<lastBuildDate>Mon, 18 Jul 2022 16:43:49 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<atom:link rel='hub' href='https://dreamparadaisu.com/?pushpress=hub'/>
<site xmlns="com-wordpress:feed-additions:1">180489529</site>	<item>
		<title>【Python勉強会】Web上の表をExcelに出力してみた</title>
		<link>https://dreamparadaisu.com/python_41/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=python_41</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Mon, 18 Jul 2022 21:00:35 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[自動化]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=4376</guid>

					<description><![CDATA[<p>どうも！リョクちゃです！ &#160; 大変ご無沙汰しております。記事が更新できないまま、1カ月以上経過していました。 生活が激変(転職による影響)してから全然でした、、、。 &#160; とはいうものの、転職してからプ...</p>
The post <a href="https://dreamparadaisu.com/python_41/">【Python勉強会】Web上の表をExcelに出力してみた</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです！</p>
<p>&nbsp;</p>
<p>大変ご無沙汰しております。記事が更新できないまま、1カ月以上経過していました。</p>
<p>生活が激変(転職による影響)してから全然でした、、、。</p>
<p>&nbsp;</p>
<p>とはいうものの、転職してからプログラミングする機会がなくなってしまい、</p>
<p>全然触れていませんでした。。。</p>
<p>&nbsp;</p>
<p>さて、今回はSeleniumとPandasを活用してWeb上に表示されている表を取得し、</p>
<p>最終的にExcel形式で保存する方法について簡単に紹介していきます。</p>
<p>&nbsp;</p>
<p>ちなみに前回はこちら</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/python_40/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2022/01/sakura_2_17-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2022/01/sakura_2_17-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2022/01/sakura_2_17-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2022/01/sakura_2_17-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/python_40/" class="blog-card-title-link">【Python勉強会】さくらサーバで.pyファイルを実行する～レンタルサーバを活用しよう～</a></div><div class="blog-card-excerpt">前回に続き(https://dreamparadaisu.com/python_39/)さくらサーバで実際にPythonを実行してみたので記事にしています。レンタルサーバの中でもさくらサーバを活用して、Pythonを定時実行したい場合の参考になれば嬉しいです。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/python_40/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/python_40/" alt="" /></a></div><div class="blog-card-date">2022-01-14 03:21</div></div></div>
<p>&nbsp;</p>
<div><a href="https://px.a8.net/svt/ejp?a8mat=3N1PW3+3RQUPE+D8Y+61JSH" rel="nofollow">
<img decoding="async" class="aligncenter" src="https://www27.a8.net/svt/bgt?aid=220109907228&amp;wid=001&amp;eno=01&amp;mid=s00000001717001015000&amp;mc=1" alt="" width="468" height="60" border="0"></a>
<img decoding="async" class="aligncenter" src="https://www11.a8.net/0.gif?a8mat=3N1PW3+3RQUPE+D8Y+61JSH" alt="" width="1" height="1" border="0"></div>
<p>&nbsp;</p>
<h1>Web上に表示されているテーブルデータ(表)</h1>
<p>下図のような表をテーブルデータと、ここでは扱っています。</p>
<figure id="attachment_mmd_4377" class="wp-block-image aligncenter"><img decoding="async" width="1023" height="985" src="https://dreamparadaisu.com/wp-content/uploads/2022/07/selenium_pandas_01.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>※一例として、Yahooファイナンスのページを引用しております。</p>
<p>&nbsp;</p>
<p>Web上では、図のように表示された表をテーブルデータといいます。</p>
<p>今回は、これを取得して、Excel形式で保存をしていきます。</p>
<p>&nbsp;</p>
<h1>テーブルデータ取得への道</h1>
<p>Web上の表を取得するには、ざっと下のような流れで作業を細分化できます。</p>
<p>&nbsp;</p>
<p>①　Web上で取得したい表を形成するtableタグを探し・抽出</p>
<p>②　抽出した情報のHTMLを取得</p>
<p>③　PandasでHTMLを読込み、listに変換</p>
<p>④　listからDataFrameへ変換</p>
<p>⑤　DataFrameからExcel形式に出力(保存)</p>
<p>&nbsp;</p>
<p>①～⑤の流れを進めることで、最終的にExcel形式に出力することができちゃいます。</p>
<p>1つ1つ順を追って説明していきます。</p>
<p>※取得したい表が掲載されているURLの選定はここでは作業の流れに含んでおりません。</p>
<p>各々でURLは見つけてみて下さい。</p>
<h2>Web上で取得したい表を形成するtableタグを探し・抽出</h2>
<p>今回は、&#8221;<a href="https://kisetsumimiyori.com/toumorokoshiranking/">とうもろこしの生産量ランキング(都道府県別)</a>&#8220;のページから</p>
<p>都道府県別にまとめられたとうもろこしの生産量の表を取得していきます。</p>
<figure id="attachment_mmd_4378" class="wp-block-image aligncenter"><img decoding="async" width="572" height="780" src="https://dreamparadaisu.com/wp-content/uploads/2022/07/selenium_pandas_02.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>こちらの表を取得したいと思います。</p>
<p>&nbsp;</p>
<p>まずはこの表がどんな構成でWebページ上に表示されているかを解析していきます。</p>
<p>ここではブラウザを<span style="text-decoration: underline"><strong>Chrome</strong></span>として説明していきます。</p>
<p>&nbsp;</p>
<p>Chromeで対象のURLを開き、右クリックし「検証」を押します。</p>
<p>下図のようなイメージになります。</p>
<figure id="attachment_mmd_2896" class="wp-block-image aligncenter"><img decoding="async" width="680" height="391" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_11.png" class="attachment-680x588 size-680x588" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>「検証」をクリックすると、ページを構成するHTMLがブラウザ上に表示されます。</p>
<figure id="attachment_mmd_2897" class="wp-block-image aligncenter"><img decoding="async" width="680" height="254" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_12.png" class="attachment-680x382 size-680x382" alt="" loading="lazy" align="center" /></figure>
<p>HTMLから取得したい表を形成するtableタグを探していきます。</p>
<p>&nbsp;</p>
<p>今回取得したい&#8221;都道府県別とうもろこしの生産量&#8221;の表は、</p>
<p>下図に示すtableタグで表が形成されていました。</p>
<figure id="attachment_mmd_4379" class="wp-block-image aligncenter"><img decoding="async" width="680" height="405" src="https://dreamparadaisu.com/wp-content/uploads/2022/07/selenium_pandas_03.png" class="attachment-680x610 size-680x610" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>このtableタグを取得するには、tableタグ上で右クリックをし、「Copy」にカーソルを当て、</p>
<p>表示される項目から今回は、「Copy selector」を選びます。(下図)</p>
<figure id="attachment_mmd_4380" class="wp-block-image aligncenter"><img decoding="async" width="680" height="482" src="https://dreamparadaisu.com/wp-content/uploads/2022/07/selenium_pandas_04.png" class="attachment-680x727 size-680x727" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>これでtableタグを取得することができました。</p>
<p>&nbsp;</p>
<p>ここまでをSeleniumを活用してプログラムを書くと、以下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">from selenium import webdriver

# Chromeを立ち上げる
browser = webdriver.Chrome()

# URLを設定
url = "https://kisetsumimiyori.com/toumorokoshiranking/"

# URLを表示
browser.get(url)

#　対象のURLからTable情報をゲットする
elem_tableTag = browser.find_element_by_css_selector('#entry &gt; section &gt; table')</pre><p></p>
<h2>抽出した情報のHTMLを取得</h2>
<p>抽出したTableタグを含むHTML情報を取得するには、</p>
<p>取得したTableタグのouterHTMLプロパティを取得します。</p>
<p>&nbsp;</p>
<p>この作業は、、、</p>
<p>Tableタグだけでは後続で活用するPandasでは使えないため、</p>
<p>outerHTMLで取得した情報を渡す必要があります。</p>
<p>&nbsp;</p>
<p>outerHTMLプロパティを取得するには
</p><pre class="urvanov-syntax-highlighter-plain-tag"># TableタグからouterHTMLプロパティを取得する
html = elem_tableTag.get_attribute('outerHTML')</pre><p>
&nbsp;</p>
<h2>PandasでHTMLを読込み、listに変換</h2>
<p>次にouterHTMLの情報をPandasのread_htmlメソッドを使って、list形式に変換します。</p>
<p>※当初、read_htmlメソッドで変換される形式はDataFrameかと勘違いしていました。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag"># Tableタグから抽出したouterHTML情報をPandasでlist形式へ変換
lstTable = pd.read_html(html)

# 念のため、型を確認
print(type(lstTable))

# Tableタグが取得できているか確認
print(lstTable)</pre><p>
※　import Pandas as pdを忘れずに。</p>
<p>&nbsp;</p>
<p>ここまでで、表情報の取得ができています。</p>
<figure id="attachment_mmd_4381" class="wp-block-image aligncenter"><img decoding="async" width="303" height="362" src="https://dreamparadaisu.com/wp-content/uploads/2022/07/selenium_pandas_05.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<h2>listからDataFrameへ変換</h2>
<p>ここまででExcelへ保存することをしたかったのですが、、、</p>
<p>list形式からExcelに出力するのがPandasで用意されているto_excelメソッドでは</p>
<p>できないため、DataFrameへ変換をします。</p>
<p>&nbsp;</p>
<p>list形式からDataFrameへの変換は
</p><pre class="urvanov-syntax-highlighter-plain-tag"># list形式からDataFrameへ変換
df = pd.DataFrame(data=lstTable[0])

# 念のため、型を確認
print(type(df))</pre><p>
&nbsp;</p>
<p>DataFrameへ変換するには、Pandas.DataFrameメソッドを使用します。</p>
<p>ここでは、Pandasをインポートする際にpdと呼称しているので、</p>
<p>pd.DataFrameとなっています。</p>
<p>&nbsp;</p>
<p>引数として、前述でlist形式に変換された<span style="text-decoration: underline">Table情報の0番目</span>を渡しています。</p>
<p>※Web上に複数の表があれば、もしかしたらインデックスを指定して、</p>
<p>一度のアクセス(Seleniumからの)で好きな表を取得できると思います。</p>
<p>&nbsp;</p>
<h2>DataFrameからExcel形式に出力(保存)</h2>
<p>最後にDataFrameからExcel形式に出力をしていきます。</p>
<p>ここでは、to_excelメソッドを使います。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag"># Excel形式で出力
df.to_excel('output_test.xlsx')</pre><p>
&nbsp;</p>
<p>output_test.xlsxという名前でExcelファイルとして出力がされます。</p>
<p>下図のような形で出力がされています。</p>
<figure id="attachment_mmd_4386" class="wp-block-image aligncenter"><img decoding="async" width="403" height="409" src="https://dreamparadaisu.com/wp-content/uploads/2022/07/selenium_pandas_06.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>Web上のテーブルデータ(表)をSeleniumとPandasを活用して、</p>
<p>Excel形式に出力する方法を簡単に紹介していきました。</p>
<p>&nbsp;</p>
<p>SeleniumではTableタグとそれのouterHTMLプロパティを取得し、</p>
<p>Pandasでは取得した情報をDataFrameへと変換し、Excel形式に出力</p>
<p>といった作業をそれぞれ行わせています。</p>
<p>&nbsp;</p>
<p>わざわざPandasを使わなくてもExcelへの出力はできますが、</p>
<p>モジュールを活用することで、コードを書く工数を削減できるため便利です。</p>
<p>&nbsp;</p>
<p>他にもこれを応用して様々なテーブルデータを取得することができれば、</p>
<p>Excelに出力することも可能かと思います。</p>
<p>※Tableタグがあるもの</p>
<p>&nbsp;</p>
<p>参考になれば嬉しいです。色々活用していただけたらと思います。</p>
<p>&nbsp;</p>
<p>最後までお読みいただき、ありがとうございます。</p>
<p>これからも継続して書きつづっていきます。</p>
<p>&nbsp;</p>
<p>よろしくお願いします！</p>
<p>&nbsp;</p>
<p><strong><em>・こちらの書籍を参考にPythonの理解を深めました。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F12223744%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798130804 空飛ぶPython即時開発指南書"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0804/9784798130804.jpg?_ex=200x200" alt="空飛ぶPython即時開発指南書" /></div><p class="wpap-title">空飛ぶPython即時開発指南書</p><div class="wpap-creator">ナオミ・セダー, 新丈径</div><div class="wpap-price">3,080円<span class="wpap-date">(04/18 05:45時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F13819463%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784797384406 確かな力が身につくPython「超」入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/4406/9784797384406.jpg?_ex=200x200" alt="確かな力が身につくPython「超」入門" /></div><p class="wpap-title">確かな力が身につくPython「超」入門</p><div class="wpap-creator">鎌田正浩</div><div class="wpap-price">2,728円<span class="wpap-date">(04/18 05:45時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<p>&nbsp;</p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="4376"
					data-ulike-nonce="c1cc063f0d"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_4376"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/python_41/">【Python勉強会】Web上の表をExcelに出力してみた</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4376</post-id>	</item>
		<item>
		<title>【Python勉強会】Seleniumを活用してGoogle検索した画像を取得し保存してみた</title>
		<link>https://dreamparadaisu.com/python_34/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=python_34</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Sat, 28 Aug 2021 21:32:21 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[自動化]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=2890</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回はGoogle検索でヒットした画像を取得するといった作業(動作)を、 Seleniumを使って自動化してみる方法を紹介していきます。 &#160; ちなみに前回の記事はこちら ...</p>
The post <a href="https://dreamparadaisu.com/python_34/">【Python勉強会】Seleniumを活用してGoogle検索した画像を取得し保存してみた</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回はGoogle検索でヒットした画像を取得するといった作業(動作)を、</p>
<p>Seleniumを使って自動化してみる方法を紹介していきます。</p>
<p>&nbsp;</p>
<p>ちなみに前回の記事はこちら</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/python_33/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-300x300.png 300w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-75x75.png 75w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-120x120.png 120w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894.png 512w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/python_33/" class="blog-card-title-link">【Python勉強会】Seleniumのインストールをしてみた～Google Chrome編～</a></div><div class="blog-card-excerpt">プログラムでブラウザの操作が自動化できればいいな？って思ったことはありませんか？今回は、Pythonでブラウザ操作を自動化してくれるSeleniumというライブラリをインストールする方法を紹介しています。章立てて連載していきます。何かしらの参考になれば嬉しいです。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/python_33/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/python_33/" alt="" /></a></div><div class="blog-card-date">2021-08-26 06:54</div></div></div>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" rel="nofollow">
<img decoding="async" class="aligncenter" src="https://www27.a8.net/svt/bgt?aid=220503664100&amp;wid=001&amp;eno=01&amp;mid=s00000015623001010000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www13.a8.net/0.gif?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<p>ここでは既にPythonとSeleniumがインストールできている状態として話を進めていきます。</p>
<p>インストールがまだの方は、インストールをしておいていただければ嬉しいです。</p>
<p>&nbsp;</p>
<p>以下の記事でインストール方法についても触れています。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/python_1/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-300x300.png 300w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-75x75.png 75w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-120x120.png 120w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894.png 512w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/python_1/" class="blog-card-title-link">【Python勉強会】Pythonとは～はじまり編①～</a></div><div class="blog-card-excerpt">最近流行りのプログラミング言語であるPython、今回はPythonを使う上で必要となる環境の準備について簡単に。
Pythonってどんな言語？Pythonのインストール～環境構築までをざっくりと触れています。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/python_1/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/python_1/" alt="" /></a></div><div class="blog-card-date">2020-08-17 01:20</div></div></div>
<p>&nbsp;</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/post-328/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-300x300.png 300w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-75x75.png 75w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894-120x120.png 120w, https://dreamparadaisu.com/wp-content/uploads/2020/08/python_18894.png 512w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/post-328/" class="blog-card-title-link">Python勉強～はじまり編②～</a></div><div class="blog-card-excerpt">前回に続き、今回は開発環境の構築について紹介していきます。
開発環境の構築もいろいろあるので、自分が構築した環境と、
最近になって使い始...</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/post-328/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/post-328/" alt="" /></a></div><div class="blog-card-date">2020-08-18 02:29</div></div></div>
<p>&nbsp;</p>
<h1>動作環境</h1>
<p>筆者の環境は、Python 3.6.1になります。</p>
<p>古いですね……。</p>
<p>&nbsp;</p>
<p>Seleniumのバージョンは、3.141.0になります。</p>
<p>&nbsp;</p>
<h1>Seleniumのインポート</h1>
<p>まず最初にSeleniumのインポート(使う準備)をします。</p>
<div class="sp-info">from selenium import webdriver</div>
<p>&nbsp;</p>
<h1>GoogleChromeブラウザを起動</h1>
<div class="sp-info">browser = webdriver.Chrome()</div>
<div>※browserは変数名になるので、各自任意の変数名で問題ありません。</div>
<div>今回は、browserといった変数名にGoggleChromeブラウザを使用する旨を伝えています。</div>
<div></div>
<div>これを実行すると、</div>
<div><figure id="attachment_mmd_2882" class="wp-block-image aligncenter"><img decoding="async" width="924" height="328" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_8.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure></div>
<div>GoogleChromeブラウザが新たに起動します。</div>
<p>&nbsp;</p>
<h1>URLを開く</h1>
<p>今回は画像の検索をGoogleで行うので、以下のURLをブラウザ上で開きます。</p>
<div class="blog-card external-blog-card blog-card-thumbnail-left cf"><div class="blog-card-thumbnail"><a href="https://www.google.co.jp/imghp?hl=ja&ogbl" class="blog-card-thumbnail-link" target="_blank"><img src="https://s0.wordpress.com/mshots/v1/https%3A%2F%2Fwww.google.co.jp%2Fimghp%3Fhl%3Dja%26ogbl?w=100&h=100" alt="" class="blog-card-thumb-image" height="100" width="100" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://www.google.co.jp/imghp?hl=ja&ogbl" class="blog-card-title-link" target="_blank">Google &#30011;&#20687;&#26908;&#32034;</a></div><div class="blog-card-excerpt">Google 画像検索 ウェブ上の画像を縦横無尽に検索</div></div><div class="blog-card-footer"><div class="blog-card-site"><span class="blog-card-favicon"><img src="//www.google.com/s2/favicons?domain=www.google.co.jp" class="blog-card-favicon-img" alt="" width="16" height="16" /></span>www.google.co.jp</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://www.google.co.jp/imghp?hl=ja&ogbl" target="_blank" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://www.google.co.jp/imghp?hl=ja&ogbl" alt="" /></a></div></div></div>
<p>&nbsp;</p>
<p>URLを開くには、</p>
<div class="sp-info">browser.get(&#8216;ブラウザ上で開きたいURL&#8217;)</div>
<p>と書きます。</p>
<p>&nbsp;</p>
<p>実際にURLを当てはめると、</p>
<p>browser.get(&#8216;<a href="https://www.google.co.jp/imghp?hl=ja&amp;ogbl">https://www.google.co.jp/imghp?hl=ja&amp;ogbl</a>&#8216;)</p>
<p>となり、実行すると</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_2893" class="wp-block-image aligncenter"><img decoding="async" width="928" height="512" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_9.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h1>画像の検索を行う</h1>
<p>ここからは取得する画像の検索を行います。</p>
<p>今回は猫の画像を取得し、検索することとします。</p>
<p>&nbsp;</p>
<p>画像を検索するにあたって、</p>
<p>まずは開いたページの構成がどうなっているのか理解する必要があります。</p>
<p>&nbsp;</p>
<p>今回は、下図の赤枠で囲われた部分を使って検索をしたいので……</p>
<figure id="attachment_mmd_2894" class="wp-block-image aligncenter"><img decoding="async" width="680" height="393" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_10.png" class="attachment-680x592 size-680x592" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>これには以下の手順でページを構成する要素を調べていきます。</p>
<ol>

<li>開いたWebページの&#8221;検証&#8221;を行う。</li>

<li>検証タブの&#8221;Select an element ~&#8221;をクリックする。</li>

<li>カーソルを調べたい要素に合わせる。</li>

<li>要素のxpathをコピーする。</li>
</ol>
<p>といった流れで要素の検出を行います。</p>
<p>&nbsp;</p>
<p>ここでいう&#8221;要素&#8221;とは、ページ上の見出し、ボタンや段落などを指します。</p>
<p>&nbsp;</p>
<p>詳細に言うと、WebページはHTMLと呼ばれる、</p>
<p>マークアップ言語で書かれたファイルに基づき、構成がされています。</p>
<p>いわゆるhtmlファイルと呼ばれるものになります。これがWebページの顔となります。</p>
<p>&nbsp;</p>
<p>Webページは、主に下図のような感じで構成されています。</p>
<figure id="attachment_mmd_2895" class="wp-block-image aligncenter"><img decoding="async" width="615" height="396" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_16.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>※あくまで一例です。だいたいはもっと多くのコードが書かれていたりします。</p>
<p>これはただ単に&#8221;Hello World&#8221;と表示されているだけのページになります。</p>
<p>&nbsp;</p>
<p>例のように、や<h1>などが要素を表します。</p>
<p><h1>だと見出し1になります。</p>
<p>&nbsp;</p>
<p>ブラウザを操作する上では、このHTMLの各要素を知ることから始まります。</p>
<p>今回では、検索ボックスと検索ボタン(虫眼鏡アイコン)の要素を知ることになります。</p>
<p>&nbsp;</p>
<p>これらを知るには、ページ内で右クリックを押し、検証ボタンを押します。</p>
<p>※GoogleChromeの場合、各ブラウザで違います。</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_2896" class="wp-block-image aligncenter"><img decoding="async" width="680" height="391" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_11.png" class="attachment-680x588 size-680x588" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>検証ボタンを押すと、</p>
<figure id="attachment_mmd_2897" class="wp-block-image aligncenter"><img decoding="async" width="680" height="254" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_12.png" class="attachment-680x382 size-680x382" alt="" loading="lazy" align="center" /></figure>
<p>赤枠で囲まれた部分が展開されます。(検証タブと呼ぶことにします。)</p>
<p>&nbsp;</p>
<p>これが現在開いているページを構成する中身になります。</p>
<p>いろいろとコードが書かれていますね。</p>
<p>&nbsp;</p>
<p>これを元に要素の検索をしていきます。</p>
<p>検索をするには、</p>
<figure id="attachment_mmd_2898" class="wp-block-image aligncenter"><img decoding="async" width="680" height="253" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_13.png" class="attachment-680x381 size-680x381" alt="" loading="lazy" align="center" /></figure>
<p>赤丸で囲んだ矢印アイコンをクリックします。</p>
<p>クリックした状態で、カーソルを検索ボックスと検索ボタンに合わせます。</p>
<p>※合わせるだけでクリックは、まだしません。</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_2899" class="wp-block-image aligncenter"><img decoding="async" width="680" height="282" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_14.png" class="attachment-680x424 size-680x424" alt="" loading="lazy" align="center" /></figure>
<p>カーソルを合わせると、青く選択され、その上にパラメータが表示されるかと思います。</p>
<p>この<span class="marker-under">パラメータが、それぞれの要素</span>となります。</p>
<p>&nbsp;</p>
<p>ここから<span class="marker-under">さらに調査をし、どの位置(場所)に要素があるのか掴んでいきます</span>。</p>
<p>楽しくなってきましたね。</p>
<p>&nbsp;</p>
<p>ここで検索ボックスの要素の場所を取得していきます。</p>
<p>検索ボックスにカーソルを合わせた状態でクリックをします。</p>
<p>&nbsp;</p>
<p>すると、この要素がどこにあるのか検証タブ内で教えてくれます。</p>
<p>※検証タブ内で青く選択される場所になります。</p>
<p>&nbsp;</p>
<p>青く選択されたら、右クリックをします。</p>
<p>ウィンドウが開くので、<span class="marker-under">Copyを押し、Copy xPathを押します</span>。</p>
<p>下の図のような感じです。</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_2900" class="wp-block-image aligncenter"><img decoding="async" width="680" height="303" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_15.png" class="attachment-680x456 size-680x456" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p><span class="marker-under"><strong>xPath</strong></span>とは、<strong>XML Path Language</strong>の略になります。</p>
<p>HTMLドキュメントからの要素や属性値などを指定するための簡潔な言語となっています。</p>
<p>覚えておくと便利です。</p>
<p>&nbsp;</p>
<p>実際に検索ボックスをコピーしたxpathは、こちらになります。</p>
<div class="sp-info">//*[@id=&#8221;sbtc&#8221;]/div/div[2]/input</div>
<p>&nbsp;</p>
<p>同様に、検索ボタンもxpathをコピーすると、</p>
<div class="sp-info">//*[@id=&#8221;sbtc&#8221;]/button</div>
<div></div>
<div>となります。</div>
<div></div>
<div>これを使って、実際に検索ボックスにはキーワードの入力、</div>
<div>検索ボタンでは押下するといった各動作を行わせていきます。</div>
<div></div>
<div>まずは、各変数を作成し、検索ボックスと検索ボタンの要素を代入しておきます。</div>
<div></div>
<div>要素の抽出には、</div>
<div class="sp-info">browser.find_element_by_xpath(&#8216;取得する要素のxpath&#8217;)</div>
<div>と書きます。</div>
<div></div>
<div></div>
<div>検索ボックス</div>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">elem_keyword = browser.find_element_by_xpath('//*[@id="sbtc"]/div/div[2]/input')</pre><p>
&nbsp;</p>
<div>検索ボタン</div>
<div>
<pre class="urvanov-syntax-highlighter-plain-tag">elem_button = browser.find_element_by_xpath('//*[@id="sbtc"]/button')</pre>
</div>
<p>&nbsp;</p>
<p>各変数に要素を収めることができました。</p>
<p>&nbsp;</p>
<p>検索ボックスにキーワードを入力するには、</p>
<div class="sp-info">.send_keys(&#8216;検索したいワード&#8217;)</div>
<p>と書きます。</p>
<p>&nbsp;</p>
<p>今回だと、</p>
<div class="sp-info">elem_keyword.send_keys(&#8216;猫&#8217;)</div>
<p>となります。</p>
<p>&nbsp;</p>
<p>これを実行すると、</p>
<figure id="attachment_mmd_2901" class="wp-block-image aligncenter"><img decoding="async" width="750" height="599" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_17.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>入力されているのがわかります。</p>
<p>&nbsp;</p>
<p>次いで、検索ボタンを押下していきます。</p>
<p>押下するには、</p>
<div class="sp-info">.click()</div>
<p>と書きます。</p>
<p>&nbsp;</p>
<p>今回だと、</p>
<div class="sp-info">elem_button.click()</div>
<p>となります。</p>
<p>&nbsp;</p>
<p>これを実行すると、</p>
<figure id="attachment_mmd_2902" class="wp-block-image aligncenter"><img decoding="async" width="680" height="376" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_18.png" class="attachment-680x566 size-680x566" alt="" loading="lazy" align="center" /></figure>
<p>画面が切り替わり、猫の画像が表示されるようになりました。</p>
<p>これで検索ができるようになりました。</p>
<p>&nbsp;</p>
<p>ここまでで要素を取得し、検索ボックスへの入力、</p>
<p>検索ボタンの押下ができるようになりました。</p>
<p>&nbsp;</p>
<p>以降は、実際に画像の取得をしていきます。</p>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BI0VE+4JQ84Y+0K+10YL8H" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www22.a8.net/svt/bgt?aid=200715242275&amp;wid=001&amp;eno=01&amp;mid=s00000000002006208000&amp;mc=1" alt="" width="250" height="250" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www13.a8.net/0.gif?a8mat=3BI0VE+4JQ84Y+0K+10YL8H" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<h1>サムネイルの画像のリンクを取得</h1>
<p>検索できた結果から1枚目の画像を取得していきます。</p>
<p>まずは1枚目のサムネイルの画像のリンクを取得します。</p>
<p>&nbsp;</p>
<p>リンクを取得するには、
</p><pre class="urvanov-syntax-highlighter-plain-tag">elem_pic = browser.find_element_by_xpath('//*[@id="islrg"]/div[1]/div[1]/a[1]/div[1]/img')</pre><p>
とします。</p>
<p>&nbsp;</p>
<p>上述した取得したい要素のxpathを取得し、変数に要素を代入しています。</p>
<p>取得したリンクをクリックします。
</p><pre class="urvanov-syntax-highlighter-plain-tag">elem_pic.click()</pre><p>
&nbsp;</p>
<p>実行すると、</p>
<figure id="attachment_mmd_2903" class="wp-block-image aligncenter"><img decoding="async" width="680" height="285" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/selenium_19.png" class="attachment-680x428 size-680x428" alt="" loading="lazy" align="center" /></figure>
<p>1枚目の画像のサムネイルをクリックした状態です。</p>
<p>&nbsp;</p>
<h1>サムネイルの画像のURLを取得</h1>
<p>クリックしたサムネイルの画像を取得するためには、<span class="marker-under">画像のURLを取得する必要</span>があります。</p>
<p>画像のURLを取得するには、まずは要素の検出を行い、xpathを見つけます。</p>
<p>&nbsp;</p>
<p>サムネイルの画像のxpathは</p>
<p><span class="marker-under">//*[@id=&#8221;Sva75c&#8221;]/div/div/div[3]/div[2]/c-wiz/div/div[1]/div[1]/div[2]/div[1]/a/img</span></p>
<p>となることがわかりました。</p>
<p>&nbsp;</p>
<p>この要素を変数に代入していきます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">elem_imgUrl = browser.find_element_by_xpath('//*[@id="Sva75c"]/div/div/div[3]/div[2]/c-wiz/div/div[1]/div[1]/div[2]/div[1]/a/img')</pre><p>
&nbsp;</p>
<p>これだけでは画像のURLを取得することができないので、</p>
<p>さらに要素内のURLを格納している属性まで絞り込みます。</p>
<p>&nbsp;</p>
<p>調べてみると画像のURLの属性は、&#8221;src&#8221;と呼ばれる属性に格納されているようです。</p>
<p>つまりはsrc属性を取得すれば、画像のURLを取得することができます。</p>
<p>&nbsp;</p>
<p>src属性を取得するには、</p>
<div class="sp-info">.get_attribute(&#8216;取得したい属性&#8217;)</div>
<p>と書きます。</p>
<p>&nbsp;</p>
<p>今回だと、</p>
<div class="sp-info">elem_imgUrl.get_attribute(&#8216;src&#8217;)</div>
<p>&nbsp;</p>
<p>これを変数に代入しておきます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">img_url = elem_imgUrl.get_attribute('src')</pre><p>
変数の中身をのぞいてみると、</p>
<p><a href="https://tk.ismcdn.jp/mwimgs/7/6/1140/img_761783d94524387445e94d79e99b739a80657.jpg">https://tk.ismcdn.jp/mwimgs/7/6/1140/img_761783d94524387445e94d79e99b739a80657.jpg</a></p>
<p>&nbsp;</p>
<p>見事に画像のURLを取得することができました。</p>
<p>&nbsp;</p>
<h1>画像を読込む</h1>
<p>取得した画像のURLから画像を読み込んでみます。</p>
<p>画像を読み込むには、新たに<strong><span class="marker-under">requestsライブラリと</span></strong></p>
<p><strong><span class="marker-under">ioライブラリ、PILライブラリ</span></strong>をそれぞれインポートします。</p>
<p>&nbsp;</p>
<p><span class="marker-under"><strong>requestsライブラリ</strong></span></p>
<p>これはHTTP通信用のライブラリで、HTMLファイルからデータを取得するのに使われます。</p>
<p>&nbsp;</p>
<p><span class="marker-under"><strong>ioライブラリ</strong></span></p>
<blockquote>ストリームを扱うコアツール</blockquote>
<p>で今回は、バイナリIOとして扱います。</p>
<p>画像データをメモリ上でバイトデータで読取るために使用します。</p>
<p>&nbsp;</p>
<p>こちらは標準でインストールされています。</p>
<p>&nbsp;</p>
<p><span class="marker-under"><strong>PILライブラリ(=Pillow)</strong></span></p>
<p>画像処理用のライブラリで、画像の表示と保存に今回使います。</p>
<p>&nbsp;</p>
<p>インストールされていない場合は、</p>
<div class="sp-info">pip install requests</div>
<div class="sp-info">pip install Pillow</div>
<p>でインストールができます。</p>
<p>&nbsp;</p>
<p>インポートは、</p>
<div class="sp-info">import requests</div>
<div class="sp-info">import io</div>
<div class="sp-info">from PIL import Image</div>
<p>&nbsp;</p>
<p>まずは画像のURLから画像データのバイト列を取得していきます。</p>
<p>取得するには、</p>
<div class="sp-info">requests.get(&#8216;画像のURL&#8217;).content</div>
<p>&nbsp;</p>
<p>今回だと、</p>
<div class="sp-info">requests.get(img_url).content</div>
<p>となり、これも変数に代入しておきます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">img = requests.get(img_url).content</pre><p>
&nbsp;</p>
<p>次に、BytesIOを使って、画像を読み込みます。</p>
<div class="sp-info">io.BytesIO(画像データ)</div>
<p>&nbsp;</p>
<p>今回だと、
</p><pre class="urvanov-syntax-highlighter-plain-tag">img_file = io.BytesIO(img)</pre><p>
とし、変数に代入しておきます。</p>
<p>&nbsp;</p>
<p>いよいよ、取得した画像データをPILライブラリを使って表示させていきます。</p>
<p>表示させるには、</p>
<div class="sp-info">Image.open(&#8220;画像ファイル&#8221;)</div>
<p>&nbsp;</p>
<p>今回だと、</p>
<div class="sp-info">img_rec = Image.open(img_file)</div>
<div>とし、読み込んだ画像を変数に入れておきます。</div>
<div></div>
<div>実行すると、</div>
<div><figure id="attachment_mmd_2907" class="wp-block-image aligncenter"><img decoding="async" width="680" height="382" src="https://dreamparadaisu.com/wp-content/uploads/2021/08/imgCat02.jpg" class="attachment-680x576 size-680x576" alt="" loading="lazy" align="center" /></figure></div>
<div>はい、検索結果の1枚目の画像の猫が表示されています。</div>
<div>かわいいですね。</div>
<div></div>
<div><a href="https://px.a8.net/svt/ejp?a8mat=3HIPIV+LFMK2+4QYG+614CX" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www28.a8.net/svt/bgt?aid=210824887036&amp;wid=001&amp;eno=01&amp;mid=s00000022156001013000&amp;mc=1" alt="" width="300" height="250" border="0"></a>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www12.a8.net/0.gif?a8mat=3HIPIV+LFMK2+4QYG+614CX" alt="" width="1" height="1" border="0"></div>
<div></div>
<h1>画像の保存</h1>
<p>画像も表示できたので、最後に保存をしていきます。</p>
<p>画像の保存をするには、</p>
<p>&nbsp;</p>
<div class="sp-info">.save(&#8216;画像ファイルの保存先+ファイル名&#8217;)</div>
<p>とすることで保存が行えます。</p>
<p>&nbsp;</p>
<p>今回だと、
</p><pre class="urvanov-syntax-highlighter-plain-tag">img_rec.save('imgCat01.jpg')</pre><p>
と書きます。</p>
<p>&nbsp;</p>
<p>ファイル名のみの場合、</p>
<p><span class="marker-under">現在プログラムが実行されている場所(カレントフォルダ)に保存がされます</span>。</p>
<p>&nbsp;</p>
<p>これで画像の保存ができました。</p>
<p>ここまでで画像の検索から取得、表示、保存を行ってきました。</p>
<p>&nbsp;</p>
<p>お疲れ様でした。</p>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>今回は、Seleniumを使って実際にGoogle検索してヒットした画像を取得し、</p>
<p>保存する方法について紹介しました。</p>
<p>&nbsp;</p>
<p>この方法を応用することで複数の画像を取得出来たり、</p>
<p>他にも動画の取得にも活かすことができるようになるかと思います。</p>
<p>&nbsp;</p>
<p>ただし、<strong><span class="red-under">一度に大量の画像を間隔なしに取得するのは、</span></strong></p>
<p><strong><span class="red-under">サーバに負荷がかかるのでやめましょう</span></strong>。</p>
<p>&nbsp;</p>
<p>最後までお読みいただきありがとうございます。</p>
<p>&nbsp;</p>
<p><strong><em>・こちらの書籍を参考にPythonの理解を深めました。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F12223744%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798130804 空飛ぶPython即時開発指南書"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0804/9784798130804.jpg?_ex=200x200" alt="空飛ぶPython即時開発指南書" /></div><p class="wpap-title">空飛ぶPython即時開発指南書</p><div class="wpap-creator">ナオミ・セダー, 新丈径</div><div class="wpap-price">3,080円<span class="wpap-date">(04/18 05:45時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F13819463%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784797384406 確かな力が身につくPython「超」入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/4406/9784797384406.jpg?_ex=200x200" alt="確かな力が身につくPython「超」入門" /></div><p class="wpap-title">確かな力が身につくPython「超」入門</p><div class="wpap-creator">鎌田正浩</div><div class="wpap-price">2,728円<span class="wpap-date">(04/18 05:45時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<p>&nbsp;</p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="2890"
					data-ulike-nonce="134ad5b392"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_2890"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/python_34/">【Python勉強会】Seleniumを活用してGoogle検索した画像を取得し保存してみた</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2890</post-id>	</item>
	</channel>
</rss>
