<?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>タナイ  |  thanaism.com</title>
	<atom:link href="https://thanaism.com/archives/author/f86b1e7145d848153aeec7e45d14c0ba8446b663/feed" rel="self" type="application/rss+xml" />
	<link>https://thanaism.com</link>
	<description></description>
	<lastBuildDate>Tue, 05 Jul 2022 17:11:12 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.1</generator>
	<item>
		<title>【お知らせ】新しいブログを開設しました</title>
		<link>https://thanaism.com/archives/1177</link>
					<comments>https://thanaism.com/archives/1177#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Wed, 16 Sep 2020 06:40:44 +0000</pubDate>
				<category><![CDATA[未分類]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=1177</guid>

					<description><![CDATA[本サイトはWordPressで運営されています。 現在、WordPressをとりまく環境は非常に整っており、ITエンジニアでなくても簡単にブログを作成することができます。いっぽうで、WordPressを使わないブログもあ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本サイトはWordPressで運営されています。</p>



<p>現在、WordPressをとりまく環境は非常に整っており、ITエンジニアでなくても簡単にブログを作成することができます。いっぽうで、WordPressを使わないブログもあります。</p>



<p>そうです。WordPress以外でもブログを作成してみたくなりました。</p>



<p><a rel="noopener" href="https://dev.thanaism.com" target="_blank">新設したブログ</a>は、Reactをベースにした<strong><span class="marker-blue">Gatsby</span></strong>という静的サイトジェネレータを用いて作成されています。WordPressとは異なり、記事はすべて事前にビルドされ静的に保存されているため、軽量・高速に表示されることが特徴です。</p>



<hr class="wp-block-separator has-css-opacity"/>



<p>私はもともと独学でプログラミングをしていて、2020年4月とか5月あたりにクラウドソーシングで副業をはじめました。当時はVBAの案件だけでした。</p>



<p>最初はそれで得意になっていましたが、やっているうちにVBAは広いITの世界のごくごく一部だということに気付きました。しだいにWeb開発へも興味を持ち始め、Linuxシェルの使い方やGitでのソースコード管理にはじまり、PythonやJavaScriptなど、基本から網羅的に学ぶようになりました。</p>



<p>本当に楽しくて仕方がなかったのを覚えています。とにかく、新しいことをどんどん吸収していきたいと心の底から思えるのです。</p>



<p>学習を始めたころの私は、ITとは縁もゆかりもない製造業に勤めていました。それなりの大手企業ではありましたが、毎日が嫌で嫌で仕方がなかったことは明確に覚えています。大手企業のサラリーマンに求められる所作と自分の志向が悲しいほどマッチしていないという自覚がありました。</p>



<p>大切な人生を自分に向いてないことで埋め尽くすのはただただ勿体ない。無益です。</p>



<p>その点、ITにはかなりの適性を感じました。誰に頼まれるでもなく勝手に自分から学びたいと思えるし、どんどん新しいことがわかるようになっていく満足感は久しぶりの感覚でした。人生の充実度が何百倍も違うように感じました。</p>



<p>そうして様々なことを学び始めてから数ヶ月たち、新しく学んだReactやTypeScriptを多少なりとも実際になにか使ってみたくなったのが今回のブログ新設のキッカケです。</p>



<p>実はこの文章、2020年の開設を振り返って、2022年に書いています。<br>早いもので、もうすぐ開設から2年になりそうです。先月には次女も生まれ、私の人生はいろいろと変化しました。</p>



<p>今ではITエンジニアに転職し、充実した毎日を送っています。</p>




<a rel="noopener" href="https://dev.thanaism.com" title="Thanaism" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img src="https://thanaism.com/wp-content/uploads/cocoon-resources/blog-card-cache/f58d4bf74d24616884fb8613fa77c5c5.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Thanaism</div><div class="blogcard-snippet external-blogcard-snippet">Super Ultra Great Delicious Giant-swing Mountain-storm</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://dev.thanaism.com" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">dev.thanaism.com</div></div></div></div></a>

]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/1177/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Macでサイドボタンに進む・戻るを設定する</title>
		<link>https://thanaism.com/archives/938</link>
					<comments>https://thanaism.com/archives/938#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 29 Jun 2020 09:33:22 +0000</pubDate>
				<category><![CDATA[ITリテラシー]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=938</guid>

					<description><![CDATA[私のようにWindowsからMacへ移行したユーザーの場合、多くの人はWindowsで使っていた5ボタンマウスをそのまま使うケースが多いのではないでしょうか？ そこで問題になるのが、システム設定にサイドボタンの割り当て項 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>私のようにWindowsからMacへ移行したユーザーの場合、多くの人はWindowsで使っていた5ボタンマウスをそのまま使うケースが多いのではないでしょうか？</p>



<p>そこで問題になるのが、システム設定にサイドボタンの割り当て項目がないこと。</p>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="780" height="483" src="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-15.38.48.jpg" alt="" class="wp-image-939" srcset="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-15.38.48.jpg 780w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-15.38.48-300x186.jpg 300w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-15.38.48-768x476.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /><figcaption>サイドボタンの設定項目がない</figcaption></figure>



<p>今回は、Macでサイドボタンへ進む・戻るを割り当てする方法を紹介しておきます。</p>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="938" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">Karabiner-Elementsをダウンロードする</a></li><li class="rtoc-item"><a href="#rtoc-2">インターネットからマウス用の設定をImportする</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-3">マウスボタンの番号について</a></li><li class="rtoc-item"><a href="#rtoc-4">設定ファイルのリンクにうまく飛べない場合</a></li></ul></li><li class="rtoc-item"><a href="#rtoc-5">Macでマウスのサイドボタン設定まとめ</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">Karabiner-Elementsをダウンロードする</span></h2>



<p>まずは下記のサイトから<span class="bold-red">Karabiner-Elements</span>というソフトをダウンロードしましょう。</p>



<a rel="noopener" href="https://karabiner-elements.pqrs.org/" title="Karabiner-Elements" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img src="https://thanaism.com/wp-content/uploads/cocoon-resources/blog-card-cache/7ebe4975063e1d2417906e99489b49db.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Karabiner-Elements</div><div class="blogcard-snippet external-blogcard-snippet">A powerful and stable keyboard customizer for macOS.</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://karabiner-elements.pqrs.org/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">karabiner-elements.pqrs.org</div></div></div></div></a>



<p>homebrewならターミナルで、以下を叩きましょう。</p>



<pre class="wp-block-code"><code>% brew cask install karabiner-elements</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/05/1two3様背景透過01.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>Karabinerは<span class="bold-red">キーバインド変更ソフト</span>です</p>
</div></div>



<h2 id="rtoc-2" ><span id="toc2">インターネットからマウス用の設定をImportする</span></h2>



<p>Karabinerがインストールできたら、下記のリンクをクリックしてインターネットからサイドボタン用の設定ファイルをインポートします。</p>



<a rel="noopener" href="https://ke-complex-modifications.pqrs.org/#mouse_button" title="Karabiner-Elements complex_modifications rules" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fke-complex-modifications.pqrs.org%2F%23mouse_button?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Karabiner-Elements complex_modifications rules</div><div class="blogcard-snippet external-blogcard-snippet">Karabiner-Elements complex_modifications predefined rules by community</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://ke-complex-modifications.pqrs.org/#mouse_button" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ke-complex-modifications.pqrs.org</div></div></div></div></a>



<p>リンクを開くと下記の項目にジャンプするはずです。</p>



<div class="wp-block-cocoon-blocks-micro-text micro-text micro-copy micro-bottom has-text-color has-red-color"><span class="micro-text-content micro-content"><span class="micro-text-icon micro-icon fab-info-circle"></span>リンクが使えなかった方は「<a href="#troublecase">設定ファイルのリンクにうまく飛べない場合</a>」を参照ください。</span></div>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="1024" height="215" src="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.09.04-1024x215.jpg" alt="" class="wp-image-944" srcset="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.09.04-1024x215.jpg 1024w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.09.04-300x63.jpg 300w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.09.04-768x161.jpg 768w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.09.04.jpg 1085w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>“Change mouse buttons”の右上の“Import”をクリック</figcaption></figure>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="447" height="127" src="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.11.10.jpg" alt="" class="wp-image-945" srcset="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.11.10.jpg 447w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.11.10-300x85.jpg 300w" sizes="(max-width: 447px) 100vw, 447px" /><figcaption>ダイアログが出るので「許可」をクリック</figcaption></figure>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="1024" height="630" src="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.31-1024x630.jpg" alt="" class="wp-image-946" srcset="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.31-1024x630.jpg 1024w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.31-300x185.jpg 300w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.31-768x472.jpg 768w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.31.jpg 1112w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>“Import”をクリック</figcaption></figure>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="1024" height="630" src="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.53-1024x630.jpg" alt="" class="wp-image-947" srcset="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.53-1024x630.jpg 1024w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.53-300x185.jpg 300w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.53-768x472.jpg 768w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.12.53.jpg 1112w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>好きな項目の“Enable”をクリック</figcaption></figure>



<p>いくつか項目がありますが、お好みに応じてEnable（有効化）してください。</p>



<p>設定内容は書いてある通りですが、英語が読めない方のために書いておきます。</p>



<figure class="wp-block-table alignfull is-style-stripes"><table><tbody><tr><td>Change button4,5 to back,forward</td><td>ボタン4：戻る、ボタン5：進む</td></tr><tr><td>Change button4,5 to forward, back</td><td>ボタン4：進む、ボタン5：戻る</td></tr><tr><td>Change left button + right button to middle button if these are pressed simultaneously</td><td>左右同時クリックでミドルクリック</td></tr></tbody></table></figure>



<h3 id="rtoc-3" ><span id="toc3">マウスボタンの番号について</span></h3>



<p>これも、わかりにくいので書いておきます。</p>



<figure class="wp-block-table alignfull"><table><tbody><tr><td>左クリック</td><td>ボタン1</td></tr><tr><td>右クリック</td><td>ボタン2</td></tr><tr><td>ホイールボタン</td><td>ボタン3</td></tr><tr><td>サイド指先側</td><td>ボタン4</td></tr><tr><td>サイド指元側</td><td>ボタン5</td></tr></tbody></table></figure>



<p>マウスのボタン番号などで検索すると下記のような番号付けの画像が出てきたりして混乱しますが、あくまでMacの認識としては上記になります。</p>



<blockquote class="wp-block-quote has-text-align-center"><p><img loading="lazy" width="250" height="224" class="wp-image-948" style="width: 250px;" src="https://thanaism.com/wp-content/uploads/2020/06/top.jpg" alt=""></p><cite>画像引用元：<a href="https://www2.elecom.co.jp/peripheral/mouse/5bottuns/index.asp">https://www2.elecom.co.jp/peripheral/mouse/5bottuns/index.asp</a></cite></blockquote>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/05/1two3様背景透過01.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>たとえば<span class="bold-red">ミドルクリックにMisson Controlをバインドしたい</span>などのケースでは、<span class="bold-red">マウスボタン3</span>を選択します。</p>
</div></div>



<figure class="wp-block-image size-large is-resized is-style-default"><img loading="lazy" src="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.49.00.jpg" alt="" class="wp-image-951" width="714" height="541" srcset="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.49.00.jpg 780w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.49.00-300x228.jpg 300w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.49.00-768x583.jpg 768w" sizes="(max-width: 714px) 100vw, 714px" /><figcaption>管理人は⌘を押しながらのミドルクリックでMisson Controlが開くように設定しています</figcaption></figure>



<a id="troublecase"></a>



<h3 id="rtoc-4" ><span id="toc4">設定ファイルのリンクにうまく飛べない場合</span></h3>



<p>上記のリンクが使えない場合は、以下の方法で同じ場所にたどり着くことができます。Complex Modificationの項目にいきます。</p>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="1024" height="630" src="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.03.34-1024x630.jpg" alt="" class="wp-image-941" srcset="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.03.34-1024x630.jpg 1024w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.03.34-300x185.jpg 300w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.03.34-768x472.jpg 768w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.03.34.jpg 1112w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>左下の“Add rule”をクリック</figcaption></figure>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="1024" height="630" src="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.04.05-1024x630.jpg" alt="" class="wp-image-942" srcset="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.04.05-1024x630.jpg 1024w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.04.05-300x185.jpg 300w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.04.05-768x472.jpg 768w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.04.05.jpg 1112w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>上の“Import more rules from the Internet”をクリック（ブラウザが開きます）</figcaption></figure>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="939" height="51" src="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.44.00.jpg" alt="" class="wp-image-949" srcset="https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.44.00.jpg 939w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.44.00-300x16.jpg 300w, https://thanaism.com/wp-content/uploads/2020/06/スクリーンショット-2020-06-29-16.44.00-768x42.jpg 768w" sizes="(max-width: 939px) 100vw, 939px" /><figcaption>開いたブラウザページの上側にある“Search keywords&#8230;”に入力</figcaption></figure>



<div class="wp-block-cocoon-blocks-search-box search-form block-box"><div class="sform">Change mouse buttons</div><div class="sbtn">検索</div></div>



<h2 id="rtoc-5" ><span id="toc5">Macでマウスのサイドボタン設定まとめ</span></h2>



<p>Macのサイドボタン設定には、Karabiner-Elementsでインターネットから設定ファイルをインポートして利用します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/05/1two3様背景透過01.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>この記事では紹介しませんが、インポートした設定ファイルは自作することもできます。自分でJSONを書けばもっと自在に高度な設定が可能です。</p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/938/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】楽天ランキングページをWebスクレイピング④</title>
		<link>https://thanaism.com/archives/787</link>
					<comments>https://thanaism.com/archives/787#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Tue, 16 Jun 2020 20:00:00 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（実践編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=787</guid>

					<description><![CDATA[VBAで楽天ランキングページをWebスクレイピングする方法について、最後に補足説明を行います。 Contents コードのおさらい４位以下を取得したい場合楽天へのアクセス回数が多くならないか？サーバーへのアクセス回数サー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-normal-font-size">VBAで楽天ランキングページをWebスクレイピングする方法について、最後に補足説明を行います。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">
<a href="https://thanaism.com/?p=780" title="【VBA】楽天ランキングページをWebスクレイピング③" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】楽天ランキングページをWebスクレイピング③</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.16</div></div></div></div></a>
</div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="787" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">コードのおさらい</a></li><li class="rtoc-item"><a href="#rtoc-2">４位以下を取得したい場合</a></li><li class="rtoc-item"><a href="#rtoc-3">楽天へのアクセス回数が多くならないか？</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-4">サーバーへのアクセス回数</a></li><li class="rtoc-item"><a href="#rtoc-5">サーバーへのアクセスタイミング</a></li></ul></li></ol></div><h2 id="rtoc-1" ><span id="toc1">コードのおさらい</span></h2>



<p>前回まで使用していたコードは以下のようなものでした。</p>



<pre class="wp-block-code has-small-font-size"><code>Option Explicit


Sub getElm()
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ranking.rakuten.co.jp/weekly/")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    
    Dim products As Object
    Dim product As Object
    Dim name As String
    Dim price As String
    Dim url As String
    Dim rank As Integer
    rank = 1
    
    Set products = ie.Document.getElementsByClassName("rnkRanking_top3box")
    For Each product In products
        
        name = product.getElementsByClassName("rnkRanking_itemName")(0).innerText
        price = product.getElementsByClassName("rnkRanking_price")(0).innerText
        url = product.getElementsByClassName("rnkRanking_itemName")(0).getElementsByTagName("a")(0).href
        Debug.Print "■第" &amp; rank &amp; "位"
        Debug.Print "商品名：" &amp; name
        Debug.Print "価格：" &amp; price
        Debug.Print "URL：" &amp; url
        rank = rank + 1
    
    Next product
      
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
End Sub

</code></pre>



<h2 id="rtoc-2" ><span id="toc2">４位以下を取得したい場合</span></h2>



<p>今回は、1位～3位を取得する前提であったため、「rnkRanking_top3box」というクラス名で要素を取得しました。</p>



<pre class="wp-block-code has-small-font-size"><code>    Set products = ie.Document.getElementsByClassName("rnkRanking_top3box")</code></pre>



<p>4位以下を取得したい場合は、4位以下の商品が含まれる要素を指定すれば良いです。Google開発者ツールで確認してみてください。</p>



<h2 id="rtoc-3" ><span id="toc3">楽天へのアクセス回数が多くならないか？</span></h2>



<p>ランキングページには、1位～80位までの80件の商品が掲載されています。<br>前述の方法（4位以下を取得する）を使うことで、一度に80件の商品情報をWebスクレイピングによって取得することが可能です。</p>



<p>そんな中で、「1回に80アクセスもしたら楽天からペナルティを受けるのではないか？」と懸念される方、いるのではないでしょうか？</p>



<p>結論から言うと、問題はありません。<br>その理由について説明します。</p>



<h3 id="rtoc-4" ><span id="toc4">サーバーへのアクセス回数</span></h3>



<p>このような懸念をされる方は、「サーバーに80回アクセスする」と考えているのだと思いますが、実際は、「サーバーへのアクセス回数は１回」です。</p>



<h3 id="rtoc-5" ><span id="toc5">サーバーへのアクセスタイミング</span></h3>



<p>では、サーバーへのアクセスがどのタイミングで行われるのか、ソースコードで確認してみましょう。</p>



<p>「サーバーに80回アクセスする」と考えている方は、以下のところでサーバーにアクセスしているという認識なのだと思います。</p>



<pre class="wp-block-code has-small-font-size"><code>    For Each product In products
        
        name = product.getElementsByClassName("rnkRanking_itemName")(0).innerText
        price = product.getElementsByClassName("rnkRanking_price")(0).innerText
        url = product.getElementsByClassName("rnkRanking_itemName")(0).getElementsByTagName("a")(0).href
        Debug.Print "■第" &amp; rank &amp; "位"
        Debug.Print "商品名：" &amp; name
        Debug.Print "価格：" &amp; price
        Debug.Print "URL：" &amp; url
        rank = rank + 1
    
    Next product</code></pre>



<p>実際は以下のところになりますので、サーバーへのアクセスは1回のみです。<br>上の処理は、「サーバーから取得済のデータ」を使って商品名や価格などを取得しているので、サーバーへのアクセスは行われません。</p>



<pre class="wp-block-code has-small-font-size"><code>    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ranking.rakuten.co.jp/weekly/")</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/05/1two3様背景透過01.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>何度もアクセスするような無駄なプログラムにせず、1度のアクセスでより多くの情報を取れないか検討することが望ましいです。</p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/787/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】楽天ランキングページをWebスクレイピング③</title>
		<link>https://thanaism.com/archives/780</link>
					<comments>https://thanaism.com/archives/780#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 15 Jun 2020 20:00:00 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（実践編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=780</guid>

					<description><![CDATA[前回は、手順１、手順２について説明し、楽天ランキングページから、商品を１件ずつ取得することができました。 今回は、取得した商品の「値」の取得方法を説明します。 Contents 商品のHTMLソースを取得するHTMLの中 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>前回は、手順１、手順２について説明し、楽天ランキングページから、商品を１件ずつ取得することができました。</p>



<p>今回は、取得した商品の「値」の取得方法を説明します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<ol class="has-small-font-size"><li>楽天ランキングページ（<a rel="noopener" href="https://ranking.rakuten.co.jp/weekly/" target="_blank">https://ranking.rakuten.co.jp/weekly/</a>）にアクセスし、「ページ全体」を取得する。</li><li>「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</li><li>「商品」から、「値」（商品名、価格、URL）を取得する。</li><li>「値」を書きだす。</li><li>2～4を商品の数だけ繰り返す。</li></ol>
</div>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://thanaism.com/?p=774" title="【VBA】楽天ランキングページをWebスクレイピング②" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】楽天ランキングページをWebスクレイピング②</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.15</div></div></div></div></a>

</div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="780" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">商品のHTMLソースを取得する</a></li><li class="rtoc-item"><a href="#rtoc-2">HTMLの中身を確認する</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-3">要素の取得</a></li><li class="rtoc-item"><a href="#rtoc-4">値の取得</a></li></ul></li><li class="rtoc-item"><a href="#rtoc-5">次回の予定</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">商品のHTMLソースを取得する</span></h2>



<p>商品１件のHTMLソースをコピーして、中身を見てみましょう。<br>以下の手順で実行します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<ol class="has-small-font-size"><li>「Google開発者ツール」を起動。</li><li>「Elements」ペイン対象の要素を右クリックし、「CopyElement」を選択。</li><li>要素の内容がコピーされるので、テキストエディタ等に貼り付け。</li></ol>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="484" src="https://thanaism.com/wp-content/uploads/2020/05/7_copy_element-1024x484.png" alt="" class="wp-image-781" srcset="https://thanaism.com/wp-content/uploads/2020/05/7_copy_element-1024x484.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/7_copy_element-300x142.png 300w, https://thanaism.com/wp-content/uploads/2020/05/7_copy_element-768x363.png 768w, https://thanaism.com/wp-content/uploads/2020/05/7_copy_element.png 1097w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="rtoc-2" ><span id="toc2">HTMLの中身を確認する</span></h2>



<p>取得したHTMLの中身を確認してみましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="444" src="https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース-1024x444.png" alt="" class="wp-image-782" srcset="https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース-1024x444.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース-300x130.png 300w, https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース-768x333.png 768w, https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース.png 1093w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 id="rtoc-3" ><span id="toc3">要素の取得</span></h3>



<p>「要素」の取得方法について検討します。</p>



<p>商品名とURLは「rnkRanking_itemName」、価格は「rnkRanking_price」のクラス名を持つタグに含まれていましたので、「getElementsByClassName」で取得できそうです。</p>



<h3 id="rtoc-4" ><span id="toc4">値の取得</span></h3>



<p>要素に含まれる「値」の取得方法を検討します。</p>



<p>まず、商品名と価格は前回使用した「innerText」プロパティで取得できそうです。</p>



<p>「URL」について、取得したい値はこれまでに説明した「innerText」「outerHtml」等のプロパティではなく、＜a＞タグに含まれる「href＝”&#8230;.”」の部分になります。取得方法が異なるので、注意が必要です。</p>



<pre class="wp-block-code has-small-font-size"><code>name = product.getElementsByClassName("rnkRanking_itemName")(0).innerText
price = product.getElementsByClassName("rnkRanking_price")(0).innerText
url = product.getElementsByClassName("rnkRanking_itemName")(0).getElementsByTagName("a")(0).href
</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="795" height="369" src="https://thanaism.com/wp-content/uploads/2020/05/8_属性の取得.png" alt="" class="wp-image-785" srcset="https://thanaism.com/wp-content/uploads/2020/05/8_属性の取得.png 795w, https://thanaism.com/wp-content/uploads/2020/05/8_属性の取得-300x139.png 300w, https://thanaism.com/wp-content/uploads/2020/05/8_属性の取得-768x356.png 768w" sizes="(max-width: 795px) 100vw, 795px" /></figure>



<h2 id="rtoc-5" ><span id="toc5">次回の予定</span></h2>



<p>VBAで楽天ランキングページをWebスクレイピングで取得するための説明は以上となります。</p>



<p>次回の記事ではまとめと補足説明を行います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/780/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】楽天ランキングページをWebスクレイピング②</title>
		<link>https://thanaism.com/archives/774</link>
					<comments>https://thanaism.com/archives/774#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Sun, 14 Jun 2020 20:00:00 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（実践編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=774</guid>

					<description><![CDATA[今回から、具体的な手順の説明に入ります。 Contents ページ全体を取得する「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。「Google開発者ツール」を使ったHTMLの確認手順次回の予定ペ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今回から、具体的な手順の説明に入ります。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<ol class="has-small-font-size"><li>楽天ランキングページ（<a rel="noopener" href="https://ranking.rakuten.co.jp/weekly/" target="_blank">https://ranking.rakuten.co.jp/weekly/</a>）にアクセスし、「ページ全体」を取得する。</li><li>「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</li><li>「商品」から、「値」（商品名、価格、URL）を取得する。</li><li>「値」を書きだす。</li><li>2～4を商品の数だけ繰り返す。</li></ol>
</div>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://thanaism.com/?p=766" title="【VBA】楽天ランキングページをWebスクレイピング①" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】楽天ランキングページをWebスクレイピング①</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.14</div></div></div></div></a>

</div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="774" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">ページ全体を取得する</a></li><li class="rtoc-item"><a href="#rtoc-2">「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-3">「Google開発者ツール」を使ったHTMLの確認手順</a></li></ul></li><li class="rtoc-item"><a href="#rtoc-4">次回の予定</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">ページ全体を取得する</span></h2>



<p>この部分は、URLにランキングページを指定したこと以外は、前回と同じなので説明を割愛します。</p>



<pre class="wp-block-code has-small-font-size"><code>    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ranking.rakuten.co.jp/weekly/")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
</code></pre>



<h2 id="rtoc-2" ><span id="toc2">「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</span></h2>



<p>「商品」が取得したページのどの部分になるか、HTMLを見ながら検討してみましょう。<br>HTMLの確認には「Google開発者ツール」で確認します。</p>



<h3 id="rtoc-3" ><span id="toc3">「Google開発者ツール」を使ったHTMLの確認手順</span></h3>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<ol class="has-small-font-size"><li>ブラウザ（Chrome）上で「F12」キーをクリックし、ツールを起動します。</li><li>図の「矢印ボタン」を選択します。</li><li>Webページの該当箇所を選択できるようになるので、商品を1件選択します。</li><li>「Elements」ペインに、Webページの選択した箇所に対応したHTMLが選択されます。</li></ol>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" width="947" height="538" src="https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明.png" alt="" class="wp-image-777" srcset="https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明.png 947w, https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明-300x170.png 300w, https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明-768x436.png 768w, https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明-160x90.png 160w" sizes="(max-width: 947px) 100vw, 947px" /></figure>



<p>ランキングページの該当箇所を選択すると、「rnkRanking_top3box」というクラス名のタグが出てきます。<br>名前から見ても、このタグが商品1件に対応するタグのようです。</p>



<p>このクラス名をキーに、HTMLを取得してみます。<br>クラス名から取得するには「getElementsByClassName」を使用します。</p>



<pre class="wp-block-code has-small-font-size"><code>
    Dim products As Object
    Dim product As Object
    Dim name As String
    Dim price As String
    Dim url As String
    Dim rank As Integer
    rank = 1
    
    Set products = ie.Document.getElementsByClassName("rnkRanking_top3box")
    </code></pre>



<p>ブレークポイントで「products」オブジェクトの内容を確認すると、「Item1」～「Item3」の3件が取得できていることが分かります。ランキング１位～３位の商品が取得できたようです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="395" height="338" src="https://thanaism.com/wp-content/uploads/2020/05/5_ローカルウィンドウ.png" alt="" class="wp-image-778" srcset="https://thanaism.com/wp-content/uploads/2020/05/5_ローカルウィンドウ.png 395w, https://thanaism.com/wp-content/uploads/2020/05/5_ローカルウィンドウ-300x257.png 300w" sizes="(max-width: 395px) 100vw, 395px" /></figure>



<h2 id="rtoc-4" ><span id="toc4">次回の予定</span></h2>



<p>次回は、取得した商品から「値」を抽出していきます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/774/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】楽天ランキングページをWebスクレイピング①</title>
		<link>https://thanaism.com/archives/766</link>
					<comments>https://thanaism.com/archives/766#comments</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Sun, 14 Jun 2020 02:00:00 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（実践編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=766</guid>

					<description><![CDATA[前回までに説明した内容をもとに、楽天のランキングページをWebスクレイピングしてみましょう。 Contents 大まかな流れWebスクレイピングに必要な処理は毎回ほぼ同じ１．「ページ全体」を取得する２．「ページ全体」から [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>前回までに説明した内容をもとに、楽天のランキングページをWebスクレイピングしてみましょう。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" src="https://thanaism.com/wp-content/uploads/2020/05/ランキング２-1024x679.png" alt="" class="wp-image-769" width="768" height="509" srcset="https://thanaism.com/wp-content/uploads/2020/05/ランキング２-1024x679.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/ランキング２-300x199.png 300w, https://thanaism.com/wp-content/uploads/2020/05/ランキング２-768x510.png 768w, https://thanaism.com/wp-content/uploads/2020/05/ランキング２.png 1073w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">


<a href="https://thanaism.com/archives/551" title="【VBA】Webスクレイピング-06：取得した要素からテキストを抜き出す" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-06：取得した要素からテキストを抜き出す</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.19</div></div></div></div></a>


</div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="766" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">大まかな流れ</a></li><li class="rtoc-item"><a href="#rtoc-2">Webスクレイピングに必要な処理は毎回ほぼ同じ</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-3">１．「ページ全体」を取得する</a></li><li class="rtoc-item"><a href="#rtoc-4">２．「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</a></li><li class="rtoc-item"><a href="#rtoc-5">３．「商品」から、「値」（商品名、価格、URL）を取得する。</a></li><li class="rtoc-item"><a href="#rtoc-6">４．「値」を書きだす。</a></li><li class="rtoc-item"><a href="#rtoc-7">５．２～４を商品の数だけ繰り返す</a></li></ul></li><li class="rtoc-item"><a href="#rtoc-8">サンプルソース</a></li><li class="rtoc-item"><a href="#rtoc-9">次回の予定</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">大まかな流れ</span></h2>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-small-font-size">
<ol><li>楽天ランキングページ（<a rel="noopener" href="https://ranking.rakuten.co.jp/weekly/" target="_blank">https://ranking.rakuten.co.jp/weekly/</a>）にアクセスし、「ページ全体」を取得する。</li><li>「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</li><li>「商品」から、「値」（商品名、価格、URL）を取得する。</li><li>「値」を書きだす。</li><li>2～4を商品の数だけ繰り返す。</li></ol>
</div>



<h2 id="rtoc-2" ><span id="toc2">Webスクレイピングに必要な処理は毎回ほぼ同じ</span></h2>



<p>こうして見ると、大まかな流れは前回の記事とほとんど変わらないことが分かります。<br>一度全体の流れが理解できれば、処理が異なる一部だけを対象ページ、データに合わせてアレンジすれば応用が可能です。</p>



<h3 id="rtoc-3" ><span id="toc3">１．「ページ全体」を取得する</span></h3>



<p>この部分は、前回と同じ方法が使えそうです。</p>



<h3 id="rtoc-4" ><span id="toc4">２．「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</span></h3>



<p>「商品」が取得したページのどの部分になるか、HTMLを見ながら検討が必要になりそうです。</p>



<h3 id="rtoc-5" ><span id="toc5">３．「商品」から、「値」（商品名、価格、URL）を取得する。</span></h3>



<p>２と同様、HTMLを見ながら検討が必要になりそうです。</p>



<h3 id="rtoc-6" ><span id="toc6">４．「値」を書きだす。</span></h3>



<p>取得した値を書きだします。<br>今回は「商品名」「価格」「商品詳細ページのURL」を対象とします。</p>



<h3 id="rtoc-7" ><span id="toc7">５．２～４を商品の数だけ繰り返す</span></h3>



<p>ランキングページには複数の商品が掲載されているので、商品の数だけ繰り返します。<br>今回のサンプルでは１位～３位の商品を出力します。</p>



<h2 id="rtoc-8" ><span id="toc8">サンプルソース</span></h2>



<p>実際のソースと実行結果は以下のようになります。</p>



<pre class="wp-block-code has-small-font-size"><code>Option Explicit


Sub getElm()
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ranking.rakuten.co.jp/weekly/")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    
    Dim products As Object
    Dim product As Object
    Dim name As String
    Dim price As String
    Dim url As String
    Dim rank As Integer
    rank = 1
    
    Set products = ie.Document.getElementsByClassName("rnkRanking_top3box")
    For Each product In products
        
        name = product.getElementsByClassName("rnkRanking_itemName")(0).innerText
        price = product.getElementsByClassName("rnkRanking_price")(0).innerText
        url = product.getElementsByClassName("rnkRanking_itemName")(0).getElementsByTagName("a")(0).href
        Debug.Print "■第" &amp; rank &amp; "位"
        Debug.Print "商品名：" &amp; name
        Debug.Print "価格：" &amp; price
        Debug.Print "URL：" &amp; url
        rank = rank + 1
    
    Next product
      
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
End Sub</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="758" height="289" src="https://thanaism.com/wp-content/uploads/2020/05/実行結果-2.png" alt="" class="wp-image-770" srcset="https://thanaism.com/wp-content/uploads/2020/05/実行結果-2.png 758w, https://thanaism.com/wp-content/uploads/2020/05/実行結果-2-300x114.png 300w" sizes="(max-width: 758px) 100vw, 758px" /></figure>



<h2 id="rtoc-9" ><span id="toc9">次回の予定</span></h2>



<p>次回以降、手順に沿って具体的な説明に入ります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/766/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-06：取得した要素からテキストを抜き出す</title>
		<link>https://thanaism.com/archives/551</link>
					<comments>https://thanaism.com/archives/551#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 18 May 2020 15:19:51 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=551</guid>

					<description><![CDATA[VBAでWEBスクレイピングの第6弾です。今回で基本的な内容についての解説はひと通り終わることになります。 それでは、前回の続きとして、idやclass等で抜き出したタグ含みの情報からどうやって欲しいテキストを抽出してい [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAでWEBスクレイピングの第6弾です。今回で基本的な内容についての解説はひと通り終わることになります。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">






<a href="https://thanaism.com/archives/548" title="【VBA】Webスクレイピング-05：HTMLからデータを取り出す（Id／タグ名など）" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-05：HTMLからデータを取り出す（Id／タグ名など）</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.18</div></div></div></div></a>






</div>



<p>それでは、前回の続きとして、idやclass等で抜き出したタグ含みの情報からどうやって欲しいテキストを抽出していくかについて解説していきましょう。</p>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="551" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">テキストが格納されているプロパティ</a></li><li class="rtoc-item"><a href="#rtoc-2">サンプルコード</a></li><li class="rtoc-item"><a href="#rtoc-3">各プロパティの取得内容比較</a></li><li class="rtoc-item"><a href="#rtoc-4">Webスクレイピングについて</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-5">本格的にWeb開発を学ぶなら</a></li></ul></li></ol></div><h2 id="rtoc-1" ><span id="toc1">テキストが格納されているプロパティ</span></h2>



<figure class="wp-block-image size-large"><img src="https://source.unsplash.com/HrvOZJnO2pk" alt=""/></figure>



<p>取得した「要素」に含まれている「プロパティ」にテキストが格納されています。<br>プロパティは、以下の４種類があります。</p>



<ul><li>outerHTML<br>要素と、要素に含まれるHTML全体</li><li>outerText<br>要素と、要素に含まれるHTML全体の中で、画面にテキストとして表示される部分</li><li>innerHTML<br>要素に含まれるHTML全体（要素そのものは含まない）</li><li>innerText<br>要素に含まれるHTML全体の中で、画面にテキストとして表示される部分（要素そのものは含まない）</li></ul>



<h2 id="rtoc-2" ><span id="toc2">サンプルコード</span></h2>



<p>それぞれのプロパティを表示してみましょう。<br>前回と同様に、WikiPediaの「VBA」というページにアクセスしてみます。<br>https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications</p>



<p class="has-normal-font-size">「id=&#8221;cite_note-13&#8243;」の要素を取得し、前述の４つのプロパティを表示します。。</p>



<pre class="wp-block-code has-small-font-size"><code>Option Explicit


Sub getElm()
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    
    Dim elmById As Object
    Set elmById = ie.Document.getElementById("cite_note-13")
    Debug.Print ("＝＝＝＝＝outerHTML＝＝＝＝＝")
    Debug.Print (elmById.outerHTML)
    Debug.Print ("＝＝＝＝＝outerText＝＝＝＝＝")
    Debug.Print (elmById.outerText)
    Debug.Print ("＝＝＝＝＝innerHTML＝＝＝＝＝")
    Debug.Print (elmById.innerHTML)
    Debug.Print ("＝＝＝＝＝innerText＝＝＝＝＝")
    Debug.Print (elmById.innerText)
            
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
End Sub</code></pre>



<p>イミディエイトウィンドウに、以下のように出力されていれば、取得成功です。</p>



<pre class="wp-block-code has-small-font-size"><code>＝＝＝＝＝outerHTML＝＝＝＝＝
&lt;li id="cite_note-13">&lt;b>&lt;a href="#cite_ref-13">^&lt;/a>&lt;/b> &lt;span class="reference-text">&lt;a class="external text" href="https://support.office.com/ja-jp/article/a97c09d2-c082-46b8-b19f-e8621e8fe373" rel="nofollow">Excel のマクロのセキュリティ設定を変更する - Excel&lt;/a>&lt;/span>
&lt;/li>
＝＝＝＝＝outerText＝＝＝＝＝
^ Excel のマクロのセキュリティ設定を変更する - Excel 
＝＝＝＝＝innerHTML＝＝＝＝＝
&lt;b>&lt;a href="#cite_ref-13">^&lt;/a>&lt;/b> &lt;span class="reference-text">&lt;a class="external text" href="https://support.office.com/ja-jp/article/a97c09d2-c082-46b8-b19f-e8621e8fe373" rel="nofollow">Excel のマクロのセキュリティ設定を変更する - Excel&lt;/a>&lt;/span>

＝＝＝＝＝innerText＝＝＝＝＝
^ Excel のマクロのセキュリティ設定を変更する - Excel </code></pre>



<h2 id="rtoc-3" ><span id="toc3">各プロパティの取得内容比較</span></h2>



<p>outerHTMLを基準に、各プロパティの表示内容は以下のようになります。<br>・「outer」は要素自体を含み、「inner」は含まない<br>・「HTML」はHTMLそのものを表示し、「Text」は表示用のテキスト部のみを表示する。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="713" height="392" src="https://thanaism.com/wp-content/uploads/2020/05/プロパティ.png" alt="" class="wp-image-553" srcset="https://thanaism.com/wp-content/uploads/2020/05/プロパティ.png 713w, https://thanaism.com/wp-content/uploads/2020/05/プロパティ-300x165.png 300w" sizes="(max-width: 713px) 100vw, 713px" /></figure>



<h2 id="rtoc-4" ><span id="toc4">Webスクレイピングについて</span></h2>



<p>Webスクレイピングの基本的な内容は以上となります。</p>



<p>意外と簡単に取得できることがお分かりいただけたかと思います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>今回解説した内容は、あくまでHTMLデータの操作がベースのため、Web開発でよく使われるJavaScriptなどでも十分に通用する知識です。</p>
</div></div>



<p>Webサイトの利用規約に注意して、有効活用していただければ幸いです。</p>



<h3 id="rtoc-5" ><span id="toc5">本格的にWeb開発を学ぶなら</span></h3>



<p>VBAだけでなく、HTML自体だったり、CSS、JavaScriptといったWeb開発系言語を独学するなら<span class="bold-red">Udemy</span>がオススメです！</p>



<p>ある程度プログラミングの知識がある人は、他の言語の学習も応用が効くのでビデオ学習の効率はめちゃくちゃ良いと思います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>私も、新しい技術にキャッチアップしたいときはビデオ講座を購入して<span class="bold-red">倍速再生で高速学習</span>しています。</p>
</div></div>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content">Udemyの登録はこちら！</span></div>



<p><a rel="nofollow" href="https://px.a8.net/svt/ejp?a8mat=3BDOYR+GB1F8Y+3L4M+6RHFL"><img loading="lazy" border="0" width="300" height="250" alt="" src="https://www24.a8.net/svt/bgt?aid=200513187986&amp;wid=001&amp;eno=01&amp;mid=s00000016735001136000&amp;mc=1"></a></p>



<p><a href="https://px.a8.net/svt/ejp?a8mat=3BDOYR+GB1F8Y+3L4M+BW8O2&amp;a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fweb-application-development%2F%3FaEightID%3Ds00000016735001">ウェブ開発入門完全攻略コース &#8211; プログラミング をはじめて学び創れる人へ！未経験から現場で使える開発スキルを習得！</a></p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-bottom micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>Web開発が網羅的に解説されているので初期学習に超オススメです。私も受講しました。</span></div>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/551/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-05：HTMLからデータを取り出す（Id／タグ名など）</title>
		<link>https://thanaism.com/archives/548</link>
					<comments>https://thanaism.com/archives/548#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 18 May 2020 14:53:38 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=548</guid>

					<description><![CDATA[VBAでWEBスクレイピングの第5弾です。 今回の記事では、HTMLからデータを取得する方法をいくつか紹介していきます。 Contents 要素を取得するメソッドサンプルコードメソッド名と、取得できるデータの数について次 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-normal-font-size">VBAでWEBスクレイピングの第5弾です。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">




<a href="https://thanaism.com/archives/517" title="【VBA】Webスクレイピング-04：[開発]データを取得する" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-04：[開発]データを取得する</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.18</div></div></div></div></a>




</div>



<p>今回の記事では、HTMLからデータを取得する方法をいくつか紹介していきます。</p>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="548" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">要素を取得するメソッド</a></li><li class="rtoc-item"><a href="#rtoc-2">サンプルコード</a></li><li class="rtoc-item"><a href="#rtoc-3">メソッド名と、取得できるデータの数について</a></li><li class="rtoc-item"><a href="#rtoc-4">次回の内容</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">要素を取得するメソッド</span></h2>



<p>「要素」とは「対になるHTMLタグで囲まれた範囲」という風に理解してください。<br>「要素」を取得する方法には、以下のものがあります。</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label"><span class="tab-caption-box-label-text block-box-label-text box-label-text">HTML要素を取得するメソッド</span></div><div class="tab-caption-box-content block-box-content box-content">
<ul><li>getElementById<br>HTML内の「id」をキーに要素を取得します。</li></ul>



<ul><li>getElementsByName<br>HTML内の「name」をキーに要素を取得します。</li></ul>



<ul><li>getElementsByTagName<br>HTML内の「タグ名」をキーに要素を取得します。</li></ul>



<ul><li>getElementsByClassName<br>HTML内の「class」をキーに要素を取得します。</li></ul>
</div></div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>getElementByIdだけElementsではなくElementである点に注意しましょう。</p>



<p>これは、後述しますがHTMLの構文規則上、idは一意の値としなくてはならず複数形にならないためです。</p>
</div></div>



<p>それぞれのメソッドで要素を取得し、表示してみましょう。</p>



<p>Wikipediaの「VBA」というページにアクセスしてみます。<br><a href="https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications">https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications</a></p>



<p>また、今回はVBAの「イミディエイト」というウィンドウに取得結果を表示します。<br>VBAの[表示]-「イミディエイトウィンドウ」を選択し、ウィンドウを開いておいてください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="576" src="https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-1024x576.png" alt="" class="wp-image-549" srcset="https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ.png 1366w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="rtoc-2" ><span id="toc2">サンプルコード</span></h2>



<p>前述の４つの方法で、データを取得しています。</p>



<pre class="wp-block-code has-small-font-size"><code>Option Explicit


Sub getElm()
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    Debug.Print ("＝＝＝＝＝Idから取得＝＝＝＝＝")
    
    '「firstHeading」というIdを持つ要素を取得
    Dim elmById As Object
    Set elmById = ie.Document.getElementById("firstHeading")
    '1件しか取得されないのでそのまま表示
    Debug.Print (elmById.outerHTML)
      
    
    Debug.Print ("")
    Debug.Print ("")
    Debug.Print ("＝＝＝＝＝タグ名から取得＝＝＝＝＝")
        
    
    '「h2」タグを取得
    Dim elmByTagName As Object
    Set elmByTagName = ie.Document.getElementsByTagName("h2")
    Dim i As Long
    '複数件取得されるのでループして出力
    For i = 0 To elmByTagName.Length - 1
        Debug.Print (elmByTagName(i).outerHTML)
    Next i
      
    
    Debug.Print ("")
    Debug.Print ("")
    Debug.Print ("＝＝＝＝＝nameから取得＝＝＝＝＝")
    
    '「search」というnameを持つ要素を取得
    Dim elmByName As Object
    Set elmByName = ie.Document.getElementsByName("search")
    '複数件取得されるのでループして出力
    For i = 0 To elmByName.Length - 1
        Debug.Print (elmByName(i).outerHTML)
    Next i
      
      
    Debug.Print ("")
    Debug.Print ("")
    Debug.Print ("＝＝＝＝＝classから取得＝＝＝＝＝")
      
      
    '「toclevel-1」というclassを持つ要素を取得
    Dim elmByClassName As Object
    Set elmByClassName = ie.Document.getElementsByClassName("toclevel-1")
    '複数件取得されるのでループして出力
    For i = 0 To elmByClassName.Length - 1
        Debug.Print (elmByClassName(i).outerHTML)
    Next i
      
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
End Sub</code></pre>



<p>イミディエイトウィンドウに、以下のように出力されていれば、取得成功です。</p>



<pre class="wp-block-code vbscript has-small-font-size"><code>＝＝＝＝＝Idから取得＝＝＝＝＝
&lt;h1 class="firstHeading" id="firstHeading" lang="ja">Visual Basic for Applications&lt;/h1>


＝＝＝＝＝タグ名から取得＝＝＝＝＝
&lt;h2 id="mw-toc-heading">目次&lt;/h2>
&lt;h2>&lt;span id=".E6.A6.82.E8.A6.81">&lt;/span>&lt;span class="mw-headline" id="概要">概要&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 概要" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=1">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E6.A9.9F.E8.83.BD.E3.83.BB.E7.94.A8.E9.80.94">&lt;/span>&lt;span class="mw-headline" id="機能・用途">機能・用途&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 機能・用途" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=2">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id="VBA.E3.81.AE.E6.AD.B4.E5.8F.B2">&lt;/span>&lt;span class="mw-headline" id="VBAの歴史">VBAの歴史&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: VBAの歴史" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=3">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E8.BF.91.E5.B9.B4.E3.81.AE.E5.8B.95.E5.90.91">&lt;/span>&lt;span class="mw-headline" id="近年の動向">近年の動向&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 近年の動向" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=4">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E8.B3.87.E6.A0.BC.E6.A4.9C.E5.AE.9A.E8.A9.A6.E9.A8.93">&lt;/span>&lt;span class="mw-headline" id="資格検定試験">資格検定試験&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 資格検定試験" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=5">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E3.82.B3.E3.83.BC.E3.83.89.E4.BE.8B">&lt;/span>&lt;span class="mw-headline" id="コード例">コード例&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: コード例" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=6">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id="VBA.E3.81.AE.E3.82.BB.E3.82.AD.E3.83.A5.E3.83.AA.E3.83.86.E3.82.A3.E5.95.8F.E9.A1.8C">&lt;/span>&lt;span class="mw-headline" id="VBAのセキュリティ問題">VBAのセキュリティ問題&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: VBAのセキュリティ問題" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=8">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E9.96.A2.E9.80.A3.E9.A0.85.E7.9B.AE">&lt;/span>&lt;span class="mw-headline" id="関連項目">関連項目&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 関連項目" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=9">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E8.84.9A.E6.B3.A8">&lt;/span>&lt;span class="mw-headline" id="脚注">脚注&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 脚注" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=10">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E5.A4.96.E9.83.A8.E3.83.AA.E3.83.B3.E3.82.AF">&lt;/span>&lt;span class="mw-headline" id="外部リンク">外部リンク&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 外部リンク" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=11">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>案内メニュー&lt;/h2>


＝＝＝＝＝nameから取得＝＝＝＝＝
&lt;input name="search" title="Wikipedia内を検索する &#91;alt-f]" id="searchInput" accesskey="f" type="search" placeholder="Wikipedia内を検索">


＝＝＝＝＝classから取得＝＝＝＝＝
&lt;li class="toclevel-1 tocsection-1">&lt;a href="#概要">&lt;span class="tocnumber">1&lt;/span> &lt;span class="toctext">概要&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-2">&lt;a href="#機能・用途">&lt;span class="tocnumber">2&lt;/span> &lt;span class="toctext">機能・用途&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-3">&lt;a href="#VBAの歴史">&lt;span class="tocnumber">3&lt;/span> &lt;span class="toctext">VBAの歴史&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-4">&lt;a href="#近年の動向">&lt;span class="tocnumber">4&lt;/span> &lt;span class="toctext">近年の動向&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-5">&lt;a href="#資格検定試験">&lt;span class="tocnumber">5&lt;/span> &lt;span class="toctext">資格検定試験&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-6">&lt;a href="#コード例">&lt;span class="tocnumber">6&lt;/span> &lt;span class="toctext">コード例&lt;/span>&lt;/a>
&lt;ul>
&lt;li class="toclevel-2 tocsection-7">&lt;a href="#ユーザー定義関数">&lt;span class="tocnumber">6.1&lt;/span> &lt;span class="toctext">ユーザー定義関数&lt;/span>&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li class="toclevel-1 tocsection-8">&lt;a href="#VBAのセキュリティ問題">&lt;span class="tocnumber">7&lt;/span> &lt;span class="toctext">VBAのセキュリティ問題&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-9">&lt;a href="#関連項目">&lt;span class="tocnumber">8&lt;/span> &lt;span class="toctext">関連項目&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-10">&lt;a href="#脚注">&lt;span class="tocnumber">9&lt;/span> &lt;span class="toctext">脚注&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-11">&lt;a href="#外部リンク">&lt;span class="tocnumber">10&lt;/span> &lt;span class="toctext">外部リンク&lt;/span>&lt;/a>&lt;/li></code></pre>



<h2 id="rtoc-3" ><span id="toc3">メソッド名と、取得できるデータの数について</span></h2>



<ul><li>getElementById</li><li>getElementsByName</li><li>getElementsByTagName</li><li>getElementsByClassName</li></ul>



<p>単数形「Element」と、複数形「Elements」のものがありますね。<br>これはHTMLの構文規則に関係があります。</p>



<p>「Id」の値は、1つのHTMLの中で一意という決まりがあります。そのため、Idは単数形「Element」。それ以外はHTML内に同じ値のものが複数出現しても良いので、複数形の「Elements」が使用されています。</p>



<p>また、getElements…は複数件のデータが取得できるので、取得した要素は配列に格納されます。</p>



<h2 id="rtoc-4" ><span id="toc4">次回の内容</span></h2>



<p>今回は要素を取得するメソッド「getElement（Elements）…」について説明しました。</p>



<p>次回は取得した要素からテキストを抜きだす方法について説明します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/548/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-04：[開発]データを取得する</title>
		<link>https://thanaism.com/archives/517</link>
					<comments>https://thanaism.com/archives/517#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 18 May 2020 14:42:14 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=517</guid>

					<description><![CDATA[VBAでWEBスクレイピングの第4弾です。 Webスクレイピングによるデータの取得、今回はいよいよ開発に入ります。 Contents 前回のおさらいソースコード他のWebサイトもスクレイピングできる前回のおさらい 前回は [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAでWEBスクレイピングの第4弾です。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://thanaism.com/archives/471" title="【VBA】Webスクレイピング-03：[設計]データの取得方法を検討する" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-03：[設計]データの取得方法を検討する</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.18</div></div></div></div></a>

</div>



<p>Webスクレイピングによるデータの取得、今回はいよいよ開発に入ります。</p>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="517" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">前回のおさらい</a></li><li class="rtoc-item"><a href="#rtoc-2">ソースコード</a></li><li class="rtoc-item"><a href="#rtoc-3">他のWebサイトもスクレイピングできる</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">前回のおさらい</span></h2>



<p>前回は1番～3番の「設計」工程について説明しました。<br>今回は4番の「開発」工程を進めていきます。</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label"><span class="tab-caption-box-label-text block-box-label-text box-label-text">全体の流れ</span></div><div class="tab-caption-box-content block-box-content box-content">
<ol><li>[設計]取得したいデータを決める<br>⇒ 「価格」を取得する</li></ol>



<ol start="2"><li>[設計]取得したいデータが、HTMLのどこにあるか確認する<br>⇒ Chrome「開発者ツール」で確認</li></ol>



<ol start="3"><li>[設計]取得したいデータを、どのように取るか検討する<br>⇒ タグの「id=priceblock_ourprice」を使う</li></ol>



<ol start="4"><li>[開発]プログラムを作成し、データを取得する<br>⇒ 今回の記事で説明</li></ol>
</div></div>



<h2 id="rtoc-2" ><span id="toc2">ソースコード</span></h2>



<p>実際に動作するソースコードは以下の通りです。</p>



<pre class="wp-block-code"><code>Option Explicit

Function getPrice(url As String)
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate (url)
    
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    '価格を取得する
    Dim price As String
    price = ie.Document.getElementById("priceblock_ourprice").innerText
    
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
    getPrice = price

End Function</code></pre>



<p>この中で、データを取得しているのは以下の１行です。</p>



<pre class="wp-block-code"><code>price = ie.Document.getElementById("priceblock_ourprice").innerText</code></pre>



<p>この1行が何をしているのかを説明していきましょう。</p>



<ol><li><strong>ie</strong><br>Webページを取得するためのアプリケーション（IE）です。</li></ol>



<ol start="2"><li><strong>Document</strong><br>IEで取得したWebページです。</li></ol>



<ol start="3"><li><strong>getElementById(&#8220;priceblock_ourprice&#8221;)<br></strong>Webページから、「id=&#8221;priceblock_ourprice&#8221;を持つ要素（Element）」を取得しています。</li></ol>



<ol start="4"><li><strong>innerText</strong><br>取得した要素（Element）の「内部テキスト（innerText）」を取得しています。</li></ol>



<p>「IE⇒Webページ⇒要素⇒内部テキスト」と、徐々に絞り込まれていくイメージです。<br><img loading="lazy" width="867" height="471" class="wp-image-518" style="width: 800px" src="https://thanaism.com/wp-content/uploads/2020/05/データの絞り込み.png" alt="" srcset="https://thanaism.com/wp-content/uploads/2020/05/データの絞り込み.png 867w, https://thanaism.com/wp-content/uploads/2020/05/データの絞り込み-300x163.png 300w, https://thanaism.com/wp-content/uploads/2020/05/データの絞り込み-768x417.png 768w" sizes="(max-width: 867px) 100vw, 867px" /></p>



<h2 id="rtoc-3" ><span id="toc3">他のWebサイトもスクレイピングできる</span></h2>



<p>Webスクレイピングの基本的な流れは以上となります。<br>「データの取得方法」を変えることで様々なデータを取得できるようになります。</p>



<p>次回は「データの取得方法」について、他にどのような方法があるのかを説明していきます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/517/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-03：[設計]データの取得方法を検討する</title>
		<link>https://thanaism.com/archives/471</link>
					<comments>https://thanaism.com/archives/471#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 18 May 2020 14:36:25 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=471</guid>

					<description><![CDATA[VBAでWEBスクレイピングシリーズの第3弾です。 今回は、WEBページ内の任意の要素を抜き出すにあたってどのような設計をしていけばよいかを検討していきます。 具体的には、データの取得について以下の流れで進めていきます。 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAでWEBスクレイピングシリーズの第3弾です。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://thanaism.com/archives/464" title="【VBA】Webスクレイピング-02：※重要※はじめる前に知っておきたいこと" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-02：※重要※はじめる前に知っておきたいこと</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.08</div></div></div></div></a>

</div>



<p>今回は、WEBページ内の任意の要素を抜き出すにあたってどのような設計をしていけばよいかを検討していきます。</p>



<p>具体的には、データの取得について以下の流れで進めていきます。</p>



<div class="wp-container-1 wp-block-group"><div class="wp-block-group__inner-container">
<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label"><span class="tab-caption-box-label-text block-box-label-text box-label-text">Webスクレイピング：全体的な流れ</span></div><div class="tab-caption-box-content block-box-content box-content">
<ol><li>[設計]取得したいデータを決める</li><li>[設計]取得したいデータが、HTMLのどこにあるか確認する</li><li>[設計]取得したいデータを、どのように取るか検討する</li><li>[開発]プログラムを作成し、データを取得する</li></ol>
</div></div>



<p>１～３番目は「どのようなプログラムを作成するか」を検討する「設計」という工程です。<br>４番目は、実際にプログラムを作成する「開発」という工程です。</p>



<p>今回の記事では、１～３番目の「設計」工程について説明します。</p>



<p>「設計」工程がうまくいくと、「開発」工程もスムーズに進みますので、しっかりと検討していきましょう。</p>
</div></div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="471" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">１．[設計]取得したいデータを決める</a></li><li class="rtoc-item"><a href="#rtoc-2">２．[設計]取得したいデータがHTMLのどこにあるか確認する</a></li><li class="rtoc-item"><a href="#rtoc-3">３．[設計]取得したいデータを、どのように取るか検討する</a></li><li class="rtoc-item"><a href="#rtoc-4">【次回】[開発]プログラムを作成し、データを取得する</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">１．[設計]取得したいデータを決める</span></h2>



<p>まずは「何を取得するか？」を決めます。</p>



<p>「価格」と「商品名」など複数のデータを取得したい場合でも、まずは１つのデータを確実に取得してから、データを追加していきましょう。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>今回は「価格」を取得します。</p>
</div></div>



<h2 id="rtoc-2" ><span id="toc2">２．[設計]取得したいデータがHTMLのどこにあるか確認する</span></h2>



<div class="wp-container-2 wp-block-group"><div class="wp-block-group__inner-container">
<p>「価格」が、HTMLのどこにあるかを確認します。<br>Chromeの場合、F12キーで「開発者ツール」を起動し、価格が表示されているHTMLを簡単に確認することができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="546" src="https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1-1024x546.png" alt="" class="wp-image-473" srcset="https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1-1024x546.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1-300x160.png 300w, https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1-768x409.png 768w, https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1.png 1366w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>以下のHTMLに価格が入っていました。</p>



<pre class="wp-block-code"><code>&lt;span id="priceblock_ourprice" class="a-size-medium a-color-price priceBlockBuyingPriceString">￥5,673&lt;/span></code></pre>
</div></div>



<h2 id="rtoc-3" ><span id="toc3">３．[設計]取得したいデータを、どのように取るか検討する</span></h2>



<div class="wp-container-3 wp-block-group"><div class="wp-block-group__inner-container">
<p>次に、この価格をどのように取得すれば良いかを検討します。</p>



<pre class="wp-block-code"><code>&lt;span id="priceblock_ourprice" class="a-size-medium a-color-price priceBlockBuyingPriceString">￥5,673&lt;/span></code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>HTMLにはid、class、tagnameといったブロックごとの属性があります。それらをもとに、目的のデータを誤りなく抽出するのに最適な識別子を判別していきます。</p>
</div></div>



<p>検討のヒントは以下の通りです。</p>



<ul><li>&lt;span&gt;タグで囲まれている。</li><li>&lt;span&gt;タグの「id」が「priceblock_ourprice」である。</li><li>&lt;span&gt;タグの「class」が「a-size-medium a-color-price priceBlockBuyingPriceString」である。</li></ul>



<p>このヒントから、重複なくデータを一意に取得するには「id」を使うのが良さそうです。</p>
</div></div>



<h2 id="rtoc-4" ><span id="toc4">【次回】[開発]プログラムを作成し、データを取得する</span></h2>



<p>次回は「設計」工程で検討した内容を、実際にプログラムにする「開発」工程について説明します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/471/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
