<?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>競馬 &#8211; まったりエンジニア</title>
	<atom:link href="https://javeo.jp/tag/%E7%AB%B6%E9%A6%AC/feed/" rel="self" type="application/rss+xml" />
	<link>https://javeo.jp</link>
	<description>ほどほどレベルのプログラミング</description>
	<lastBuildDate>Sat, 27 Jun 2026 15:13:03 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2-32x32.png</url>
	<title>競馬 &#8211; まったりエンジニア</title>
	<link>https://javeo.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Claudeで競馬予想AIを自作する #3 note自動投稿</title>
		<link>https://javeo.jp/keiba-ai-challenge-03/</link>
					<comments>https://javeo.jp/keiba-ai-challenge-03/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Sat, 20 Jun 2026 12:08:28 +0000</pubDate>
				<category><![CDATA[AI・Claude]]></category>
		<category><![CDATA[生成AI]]></category>
		<category><![CDATA[競馬]]></category>
		<category><![CDATA[自動化]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4768</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/03/AIで競馬-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>競馬予想AI連載の第三回。AIにmarkdownで書かせてnoteに貼る手軽ルートと、毎週の投稿を下書きまで全自動にする手順を、noteに公式APIがない前提の安全な落とし所までまとめました]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/03/AIで競馬-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">2026年初頭AIの進歩が凄まじく、AIを使った何かをやってみたいと競馬予想AIを作ってみたシリーズの第三回です</p>



<p class="wp-block-paragraph">今回は予想したものをnoteに載せる部分、AIでどこまで楽に、できれば全自動でnoteへ投稿できるかをまとめます</p>



<p class="wp-block-paragraph">前回までの記事はこちら→<a href="https://javeo.jp/keiba-ai-challenge-01/" target="_blank" rel="noopener noreferrer">#1-はじめに</a> / <a href="https://javeo.jp/keiba-ai-challenge-02/" target="_blank" rel="noopener noreferrer">#2-スクレイピング</a></p>
</div></div>



<h2 class="wp-block-heading">noteはmarkdownを貼るだけで形になる</h2>



<p class="wp-block-paragraph">最初は手で書いていたんですが、調べてみるとnoteの新しいエディタには<strong><span class="swl-marker mark_yellow">Markdownショートカット</span></strong>という機能があって、markdownで書いたテキストを貼り付けると見出しや箇条書きとして解釈してくれることが分かりました</p>



<p class="wp-block-paragraph">つまりAIに記事をmarkdownで書いてもらって、それをnoteにコピペするだけでそれっぽい体裁の記事ができあがります</p>



<p class="wp-block-paragraph">貼り付けで反映される代表的な記法はこのあたりで、どれも記号のあとに半角スペースを入れるのがコツです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list is-style-check_list -list-under-dashed has-background">
<li><strong>#</strong> で見出し(##・### で見出しの深さも変わる)</li>



<li><strong>**テキスト**</strong> で太字</li>



<li><strong>&#8211;</strong> で箇条書き、数字+ピリオドで番号付きリスト</li>



<li>&gt; で引用</li>
</ul>



<p class="wp-block-paragraph">実際の流れはこんな感じで、慣れると数分で1記事の下地ができます</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">AIにmarkdownで書いてもらう</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">Claudeなどに「note用の記事をmarkdownで書いて」と頼みます、見出し構成や強調まで指定するとそのまま使える形で返ってきます</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">出てきたmarkdownをコピー</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">返ってきたテキストをそのままコピーします、装飾は記号(#や**)のままでかまいません</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">noteの投稿エディタに貼り付け</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">noteで新規投稿を開いて本文に貼り付けると見出しやリストに変換されます、うまく反映されない時はリロードや貼り直しで直ることが多いです</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">体裁を整えて公開</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">見出しのズレや改行だけ直して公開します、ここまで手書きより断然早いです</p>
</div></div>
</div>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">この貼り付け変換は<strong>PCのブラウザが前提</strong>です、スマホ(特にAndroidのアプリ/ブラウザ)だと貼り付けても装飾が反映されずただの文字列になることがあるので、コピペ運用はパソコンで行うのが無難です</p>
</div></div>



<h2 class="wp-block-heading">でもコピペだけだと足りない</h2>



<p class="wp-block-paragraph">手軽で良いのですが、コピペ運用には<strong>そこそこの限界</strong>もあります</p>



<ul class="wp-block-list is-style-bad_list -list-under-dashed">
<li><strong><span class="swl-marker mark_yellow">画像は貼り付けでは入らない</span></strong>ので、結局1枚ずつ手でアップロードする</li>



<li>「ここから先は有料」の<strong>有料エリアの設定は手動</strong>でやるしかない</li>



<li><strong>表はそもそも対応しておらず</strong>貼っても変換されない、凝った装飾も崩れることがある</li>



<li>毎回コピペ→画像アップ→有料設定…を繰り返すのが地味に手間</li>
</ul>



<p class="wp-block-paragraph">単発ならいいんですが、競馬予想はレースがあるたびに毎週続くので、この手作業の繰り返しが一番きついところでした</p>



<p class="wp-block-paragraph">特にAIに作ってもらった買い目の表をスクショして貼って…とやっていると、本文より画像の差し替えに時間がかかったりして、何のための自動化なんだか分からなくなってきます</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>毎週これを手作業でやるのか…と思うとちょっと萎えますよね</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="wp-block-paragraph">というわけで、ここからはもう一歩進んで全自動にできないかを考えていきます</p>


<div class="p-blogParts post_content" data-partsID="4603">
<div class="jv-books" id="jv-books-ai" data-shelf="ai"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Claude・生成AIを学べる本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240" alt="面倒なことはChatGPTにやらせよう" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">面倒なことはChatGPTにやらせよう</p><p class="jv-book-author">カレーちゃん・からあげ</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4065342902">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4065342902">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240" alt="実践Claude Code入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">実践Claude Code入門</p><p class="jv-book-author">西見公宏・吉田真吾・大嶋勇樹</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297153548">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297153548">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240" alt="Claude CodeによるAI駆動開発入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Claude CodeによるAI駆動開発入門</p><p class="jv-book-author">平川知秀</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297152754">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297152754">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='ai';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "面倒なことはChatGPTにやらせよう", "a": "カレーちゃん・からあげ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F", "id": "4065342902"}, {"t": "実践Claude Code入門", "a": "西見公宏・吉田真吾・大嶋勇樹", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F", "id": "4297153548"}, {"t": "Claude CodeによるAI駆動開発入門", "a": "平川知秀", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F", "id": "4297152754"}, {"t": "3時間で身につくClaude活用術", "a": "尾藤克之", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5495/9784866215495_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4866215496?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F", "id": "4866215496"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>


<h2 class="wp-block-heading">目指すのは&#8221;下書きまで全自動&#8221;</h2>



<p class="wp-block-paragraph">全自動にしたいところですが、まず押さえておきたい前提があります</p>



<p class="wp-block-paragraph">それは<strong><span class="swl-marker mark_yellow">noteには一般公開された公式のAPIが無い</span></strong>ということ(2026年時点)で、プログラムから正規の窓口で投稿する手段が用意されていません</p>



<p class="wp-block-paragraph">ネットを見ると非公式なやり方やブラウザの自動操作で投稿している人もいますが、それなりのリスクもついて回ります</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">非公式な手段での自動投稿は<strong><span class="swl-marker mark_yellow" style="color:#e8313b">規約に触れる可能性やアカウント停止のリスク</span></strong>があり、仕様変更で急に動かなくなることもあります、やるなら自己責任で、過度なアクセスはせず節度を持った範囲にとどめるのが安全です</p>
</div></div>



<p class="wp-block-paragraph">そこで私がたどり着いた落とし所が<strong><span class="swl-marker mark_yellow">下書きまでを自動・公開は自分で最終確認して手動</span></strong>というラインです</p>



<p class="wp-block-paragraph">公開ボタンだけ人が押す形にしておけば、変な記事がそのまま世に出る事故も防げますし、前回のスクレイピングと同じで節度を持って付き合えます</p>



<p class="wp-block-paragraph">具体的な流れはこんなイメージです</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">予想結果をAIでmarkdownに整形</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">競馬AIが出した予想を、AIにそのままnote用のmarkdown(見出し・本文・買い目の表など)へ整えてもらいます</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">ブラウザ自動操作でnoteへ流し込み</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">noteのエディタを自動で開いて、本文・画像・有料エリアを順番に流し込みます、人がやっている操作をプログラムに代わりにやってもらうイメージです</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">下書き保存まで自動</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">ここまでを自動でやって下書きとして保存します、毎週のスケジュール実行と組み合わせると、放っておいても下書きが溜まる状態になります</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">中身を確認して公開だけ手動</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">あとは下書きを開いて中身をチェックし、問題なければ公開ボタンを押すだけです、ここだけは人の目を通します</p>
</div></div>
</div>



<p class="wp-block-paragraph">やってみるとnoteの画面はときどき作りが変わるので、自動操作はその都度ちょっとした手直しが要ります、それでも毎週ゼロから手作業するよりはずっと楽です</p>



<h2 class="wp-block-heading">この全自動用に自分でアプリを作りました</h2>



<p class="wp-block-paragraph">上の「下書きまで自動」を自分でやるために、Windows用のツールを作って<strong>アプリ庫に無料で置いて</strong>います</p>



<p class="wp-block-paragraph">できることはざっくりこんな感じです</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>見出し・段落・箇条書き・引用・コード・画像・<strong><span class="swl-marker mark_yellow">有料エリア</span></strong>の流し込みに対応</li>



<li>Claude Codeと組み合わせて会話だけで下書きを作る使い方ができる</li>



<li>markdownのファイルから投稿する使い方にも対応</li>



<li>動くのは<strong>Windows11 + Chrome + noteアカウント</strong>(Macは非対応)</li>
</ul>



<p class="wp-block-paragraph">方針は安全重視で、あくまで<strong>下書きまでを自動・公開は手動</strong>にしてあります</p>



<p class="wp-block-paragraph">これも仕組みとしてはブラウザの自動操作なので、さっきの注意と同じく投稿数を増やしすぎない、節度を持った範囲で使うのが前提です</p>



<p class="wp-block-paragraph">有料エリアにも対応しているので、競馬予想を有料noteで出すような使い方もできます、配布や詳しい使い方はアプリ庫のページにまとめてあるので、気になる方はこちらをどうぞ</p>



<div class="swell-block-button is-style-btn_solid"><a href="https://javeo.jp/app/note-poster/" target="_blank" rel="noopener noreferrer" class="swell-block-button__link"><span>note-poster をアプリ庫で見る</span></a></div>



<h2 class="wp-block-heading">次回について</h2>



<p class="wp-block-paragraph">これでデータ収集とnoteへの投稿、外側の仕組みはだいたい揃ってきました</p>



<p class="wp-block-paragraph">残るは本命の競馬AI本体なので、次回はそのあたりをまとめていく予定です、追いかけてもらえると嬉しいです</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>外側が固まると、いよいよ本命の中身に集中できますね</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="p-blogParts post_content" data-partsID="4603">
<div class="jv-books" id="jv-books-ai" data-shelf="ai"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Claude・生成AIを学べる本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240" alt="面倒なことはChatGPTにやらせよう" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">面倒なことはChatGPTにやらせよう</p><p class="jv-book-author">カレーちゃん・からあげ</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4065342902">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4065342902">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240" alt="実践Claude Code入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">実践Claude Code入門</p><p class="jv-book-author">西見公宏・吉田真吾・大嶋勇樹</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297153548">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297153548">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240" alt="Claude CodeによるAI駆動開発入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Claude CodeによるAI駆動開発入門</p><p class="jv-book-author">平川知秀</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297152754">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297152754">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='ai';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "面倒なことはChatGPTにやらせよう", "a": "カレーちゃん・からあげ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F", "id": "4065342902"}, {"t": "実践Claude Code入門", "a": "西見公宏・吉田真吾・大嶋勇樹", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F", "id": "4297153548"}, {"t": "Claude CodeによるAI駆動開発入門", "a": "平川知秀", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F", "id": "4297152754"}, {"t": "3時間で身につくClaude活用術", "a": "尾藤克之", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5495/9784866215495_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4866215496?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F", "id": "4866215496"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/keiba-ai-challenge-03/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Claudeで競馬予想AIを自作する #2 スクレイピング編</title>
		<link>https://javeo.jp/keiba-ai-challenge-02/</link>
					<comments>https://javeo.jp/keiba-ai-challenge-02/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Sun, 29 Mar 2026 10:21:36 +0000</pubDate>
				<category><![CDATA[AI・Claude]]></category>
		<category><![CDATA[netkeiba]]></category>
		<category><![CDATA[スクレイピング]]></category>
		<category><![CDATA[競馬]]></category>
		<category><![CDATA[自動化]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=3908</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/03/AIで競馬-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>競馬予想AIを作るための過去データ収集編。JRA-VAN データラボとnetkeibaスクレイピングを比較し、データベース保存・小分け取得・逐次処理など実際に採用した方針をまとめました]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/03/AIで競馬-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">2026年初頭AIの進歩が凄まじく、AIを使った何かをやってみたいと競馬予想AIを作ってみましたのでその取り組みをまとめてみました</p>



<p class="wp-block-paragraph">ついでにその過程で作ったスクレイピングとnoteへの自動投稿も一緒にまとめますので興味のある方は覗いてみてください</p>



<p class="wp-block-paragraph">今回は第二回でデータ収集についてまとめています</p>



<p class="wp-block-paragraph">前回(第一回)はこちら→<a href="https://javeo.jp/keiba-ai-challenge-01/" target="_blank" rel="noopener noreferrer">汎用AIと一緒に競馬予想AI作ってnote投稿まで自動化する #1-はじめに</a></p>
</div></div>



<h2 class="wp-block-heading">まずはデータがないと分析できない</h2>



<p class="wp-block-paragraph">AI含め、分析するならデータを手元に持たないと話にならないので過去データの収集から始めます</p>



<p class="wp-block-paragraph">選択肢としては有料でもいいから正攻法なら<strong>JRA-VAN データラボ</strong>からのデータ取得、無料だけど節度を持ってゆっくりデータを取得するなら<strong>netkeibaからのスクレイピング</strong>の2つを検討しました</p>



<h3 class="wp-block-heading">JRA-VAN データラボからのデータ取得</h3>



<p class="wp-block-paragraph">JRA公式データを使うなら<strong><span class="swl-marker mark_yellow">データラボが本命</span></strong></p>



<p class="wp-block-paragraph"><strong>2,090</strong>円/月（初月無料）で利用できてJRA関連会社が運営する公式ツールです</p>



<p class="wp-block-paragraph"><a href="https://jra-van.jp/dlb/feature.html" target="_blank" rel="noopener noreferrer">https://jra-van.jp/dlb/feature.html</a></p>



<p class="wp-block-paragraph">調査も含めて契約してみたのですが、基本はJV-Linkを組み込んだ独自アプリ開発キットのような印象でした</p>



<p class="wp-block-paragraph">問題は対象言語サポートが2026年3月現在残念でVB系しか対象になっておらず、ちょっと厳しい印象なのは否めません</p>



<p class="wp-block-paragraph">ネットを見ているとサポート関係なく他の言語で作成している人もいるみたいですが、コミュニティが使えないなど有料の強みがなくなってしまうので今回は諦め</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span>サポート対象言語</span></div><div class="cap_box_content">
<ul class="wp-block-list -list-under-dashed">
<li>Microsoft Visual Basic 2015</li>



<li>Microsoft Visual C++ 2015</li>



<li>Borland Delphi 7</li>



<li>Microsoft Access 2013/2016</li>



<li>Microsoft Excel 2013/2016</li>
</ul>



<p class="wp-block-paragraph"><a href="https://support.jra-van.jp/jravan/detail?site=SVKNEGBV&amp;category=16&amp;id=209" target="_blank" rel="noopener noreferrer">https://support.jra-van.jp/jravan/detail?site=SVKNEGBV&amp;category=16&amp;id=209</a></p>
</div></div>



<p class="wp-block-paragraph">ちなみに・・有志が作ったアプリも使えるらしく、不動の1位な<strong>TARGET</strong>や税金問題で界隈を賑わせた卍氏が使っていたといわれる<strong>馬王Z</strong>も追加料金なしで使えるようなのでゼロベースからの分析とかじゃないなら十分有力な選択肢になりそうです</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span>卍氏の書籍紹介</span></div><div class="cap_box_content">
<p class="wp-block-paragraph">2007-2009年の3年間で、1億円以上の価値を得た卍氏の書籍はコチラ</p>



<p class="wp-block-paragraph">「馬券の勝ち方」を論理的かつ丁寧に解説されてます！</p>



<p class="wp-block-paragraph"><a href="https://amzn.to/4sy3Kd8" target="_blank" rel="nofollow noopener noreferrer">卍氏の書籍を見る(Amazon)</a></p>
</div></div>



<h3 class="wp-block-heading">netkeibaからのスクレイピング</h3>



<p class="wp-block-paragraph">結論から言うと<strong><span class="swl-marker mark_yellow">今回採用したのはこちら</span></strong></p>



<p class="wp-block-paragraph">スクレイピングとはインターネット上の情報をプログラムで収集する手法で、サーバーに負荷をかけてしまうなどあまり推奨される手法ではありませんが、netkeibaは禁止していないようなのと情報として十分すぎる量があり、長く使うなら無料はありがたいです</p>



<p class="wp-block-paragraph">参考までにnetkeibaがスクレイピングを禁止していないと判断した材料はこちら</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list is-style-check_list -list-under-dashed has-background">
<li>robots.txtがない
<ul class="wp-block-list">
<li>禁止している場合はここに記載されていることが多いです</li>
</ul>
</li>



<li>利用規約で禁止していない
<ul class="wp-block-list">
<li>厳密には<a href="https://support.keiba.netkeiba.com/hc/ja/articles/39720493823129" target="_blank" rel="noreferrer noopener nofollow">制限をかける場合があると記載</a>されていますが、過剰アクセスの場合と判断しました</li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">ちょっとした注意点</h4>



<p class="wp-block-paragraph">公式データではないからなのか、netkeibaのデータで注意点として極稀に謎のデータが存在します</p>



<p class="wp-block-paragraph">例えば2014/2/10の東京3Rの結果ページなんですが、明らかに単勝オッズがおかしくなっています</p>



<p class="wp-block-paragraph"><a href="https://race.netkeiba.com/race/result.html?race_id=201405010303" target="_blank" rel="noreferrer noopener nofollow">https://race.netkeiba.com/race/result.html?race_id=201405010303</a></p>



<p class="wp-block-paragraph">出馬表データの単勝オッズは正しいのでカバーはできますし、発生頻度は激低なのでご愛敬で</p>



<h2 class="wp-block-heading">スクレイピングについて</h2>



<p class="wp-block-paragraph">具体的なコードは別で紹介しようと思いますが、ここでは方針的なことだけまとめます</p>



<p class="wp-block-paragraph">※近いうちに<a href="https://note.com/javeo2022" data-type="link" data-id="https://note.com/javeo2022" target="_blank" rel="noreferrer noopener">note</a>でまとめるつもりなので完了したらこの記事でもお知らせします</p>



<p class="wp-block-paragraph">※netkeibaのスクレイピングはPythonでの実装例を別記事にもまとめています→<a href="https://javeo.jp/python-scraping-netkeiba-1/" target="_blank" rel="noopener noreferrer">【Python】netkeibaをスクレイピングする-その1</a></p>



<h3 class="wp-block-heading">取得したデータはデータベースへ保存</h3>



<p class="wp-block-paragraph">ネットを見ているとプログラムを実行する度にスクレイピングするような記事を見かけますが、再利用やちょっとした加工の可能性も考えると<strong><span class="swl-marker mark_yellow">データベースに保管することを推奨</span></strong>です</p>



<p class="wp-block-paragraph">参考までに私はこのブログサイトのために<a href="https://px.a8.net/svt/ejp?a8mat=2ZTU22+94NC8Y+CO4+609HU" target="_blank" rel="nofollow noopener noreferrer">エックスサーバー</a><img decoding="async" border="0" width="1" height="1" src="https://www19.a8.net/0.gif?a8mat=2ZTU22+94NC8Y+CO4+609HU" alt="">を契約しているので、専用のデータベースを作成して取得した2008年以降のレース結果を保存しています</p>



<h3 class="wp-block-heading">データは小分けに取得</h3>



<p class="wp-block-paragraph">データベースを使う利点の一つとも言える、<strong><span class="swl-marker mark_yellow">取得情報をもとに次の情報を取得</span></strong>が個人的推奨方法</p>



<p class="wp-block-paragraph">スクレイピングに置いて通信問題などで収集途中で原因不明かつ対策不可能なエラーが発生することは比較的多く、全てにエラーハンドリングを仕込むことはあまり現実的ではないので順番に収集します</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li>まずはリスト取得
<ol class="wp-block-list">
<li>開催スケジュール取得</li>



<li>開催レース取得</li>
</ol>
</li>



<li>次にデータベースと照合しながら未取得情報を収集
<ol class="wp-block-list">
<li>レース詳細取得</li>



<li>騎手マスタ取得</li>



<li>調教師マスタ取得</li>



<li>馬主マスタ取得</li>



<li>競走馬マスタ取得</li>
</ol>
</li>



<li>最後に競走馬マスタを再帰処理して血統情報収集</li>
</ul>



<p class="wp-block-paragraph">SQLの作り方次第ではありますが、これでエラーが発生しても途中再開が簡単にできるようになります</p>



<h3 class="wp-block-heading">並列処理はしない</h3>



<p class="wp-block-paragraph">前述の通り利用規約では</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">スクレイピングによって多数のリクエスト（アクセス）を確認し、弊社サービスに対して支障があると判断した場合は、予告なく通信制限をかけさせていただくことがございます。</p>
</blockquote>



<p class="wp-block-paragraph">と記載されていますので逐次処理で適切に待機時間を入れながら実行することで&#8221;<strong><span class="swl-marker mark_yellow">多数のリクエスト</span></strong>&#8220;を回避することで許容してもらいます</p>



<p class="wp-block-paragraph">早く情報を収集したい気持ちで並列処理をするとアクセスブロックをされて結果余計に時間がかかる、最悪取得できなくなる可能性もあるので<strong><span class="swl-marker mark_yellow" style="color:#e8313b">節度を持った処理をしましょう</span></strong></p>



<h2 class="wp-block-heading">次回について</h2>



<p class="wp-block-paragraph">なかなか満足できるAIができないので次回はnoteへの自動投稿をまとめる予定です</p>


<div class="p-blogParts post_content" data-partsID="4603">
<div class="jv-books" id="jv-books-ai" data-shelf="ai"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Claude・生成AIを学べる本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240" alt="面倒なことはChatGPTにやらせよう" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">面倒なことはChatGPTにやらせよう</p><p class="jv-book-author">カレーちゃん・からあげ</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4065342902">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4065342902">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240" alt="実践Claude Code入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">実践Claude Code入門</p><p class="jv-book-author">西見公宏・吉田真吾・大嶋勇樹</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297153548">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297153548">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240" alt="Claude CodeによるAI駆動開発入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Claude CodeによるAI駆動開発入門</p><p class="jv-book-author">平川知秀</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297152754">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297152754">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='ai';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "面倒なことはChatGPTにやらせよう", "a": "カレーちゃん・からあげ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F", "id": "4065342902"}, {"t": "実践Claude Code入門", "a": "西見公宏・吉田真吾・大嶋勇樹", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F", "id": "4297153548"}, {"t": "Claude CodeによるAI駆動開発入門", "a": "平川知秀", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F", "id": "4297152754"}, {"t": "3時間で身につくClaude活用術", "a": "尾藤克之", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5495/9784866215495_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4866215496?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F", "id": "4866215496"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/keiba-ai-challenge-02/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Claudeで競馬予想AIを自作する #1 連載のはじめに</title>
		<link>https://javeo.jp/keiba-ai-challenge-01/</link>
					<comments>https://javeo.jp/keiba-ai-challenge-01/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 15:27:25 +0000</pubDate>
				<category><![CDATA[AI・Claude]]></category>
		<category><![CDATA[netkeiba]]></category>
		<category><![CDATA[スクレイピング]]></category>
		<category><![CDATA[競馬]]></category>
		<category><![CDATA[自動化]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=3838</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/03/AIで競馬-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>競馬予想AIをAIと一緒に作ってみるシリーズの第一回(はじめに)。AIで何か作りたいという動機から、相棒に選んだClaude、スクレイピング→予想→note自動投稿までの全体構成をまとめました]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/03/AIで競馬-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">2026年初頭AIの進歩が凄まじく、AIを使った何かをやってみたいと競馬予想AIを作ってみましたのでその取り組みをまとめてみました</p>



<p class="wp-block-paragraph">ついでにその過程で作ったスクレイピングとnoteへの自動投稿も一緒にまとめますので興味のある方は覗いてみてください</p>
</div></div>



<h2 class="wp-block-heading">とにかくAIを使って何か作りたい</h2>



<p class="wp-block-paragraph">最近AI使えば何でもできるがどんどん現実味を帯びてきている中、皆さんどうやってAIと付き合っていますか？</p>



<p class="wp-block-paragraph">SNSを見るとパッと見本物と区別のつかない動画や画像の生成、ブログやnoteの作成・投稿などの自動化、希望だけ伝えると勝手にプログラムを作ってくれる<strong>バイブコーディング</strong>などなど</p>



<p class="wp-block-paragraph">ネット上ではまさに日進月歩のAIなんですが、私の職場では<strong>情報漏洩の危険</strong>などからなかなかAIに触れる機会がなくこのままでは世間に置いて行かれるかもと思い、<strong><span class="swl-marker mark_yellow">まずは触ってみよう</span></strong>が今回のスタートです</p>



<p class="wp-block-paragraph">タイトルの通り本命は<strong><span class="swl-marker mark_yellow" style="color:#e8313b">競馬予想AI</span></strong>なんですが、せっかくなので機械学習に必要なデータを取得するための<strong><span class="swl-marker mark_yellow">スクレイピング</span></strong>とマネタイズ用に<strong><span class="swl-marker mark_yellow">note自動投稿</span></strong>へのチャレンジもまとめていきます</p>



<h2 class="wp-block-heading">相棒となるAIは「Claude」を採用</h2>



<p class="wp-block-paragraph">今回一緒に開発を進めるAIパートナーとして選ばれたのは「<strong><span class="swl-marker mark_yellow" style="color:#e8313b">Claude（クロード）</span></strong>」でした</p>



<p class="wp-block-paragraph">当初「Google AI Studio」を使っていたのですが、ちょうどClaudeが<strong>Opus4.6</strong>が凄い！と話題になった時期で、職場で唯一使えるCopilotでもClaudeが使えるとかMicrosoft365との連携もできるとかなんだとか今後もお付き合いする機会ができそうだったのでたまたま使い始めた時期でした</p>



<p class="wp-block-paragraph">汎用AIの優劣はネットでも様々議論されていますが、今の情勢と一カ月後の情勢はきっと違うので<strong><span class="swl-marker mark_yellow">好みで使えばいい</span></strong>と思います</p>



<p class="wp-block-paragraph">参考までに「Google AI Studio」は無料枠で今でも使っていて、「Claude」はOpus使いたかったのでProプランの課金ユーザーです</p>


<div class="p-blogParts post_content" data-partsID="4603">
<div class="jv-books" id="jv-books-ai" data-shelf="ai"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Claude・生成AIを学べる本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240" alt="面倒なことはChatGPTにやらせよう" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">面倒なことはChatGPTにやらせよう</p><p class="jv-book-author">カレーちゃん・からあげ</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4065342902">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4065342902">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240" alt="実践Claude Code入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">実践Claude Code入門</p><p class="jv-book-author">西見公宏・吉田真吾・大嶋勇樹</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297153548">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297153548">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240" alt="Claude CodeによるAI駆動開発入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Claude CodeによるAI駆動開発入門</p><p class="jv-book-author">平川知秀</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297152754">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297152754">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='ai';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "面倒なことはChatGPTにやらせよう", "a": "カレーちゃん・からあげ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F", "id": "4065342902"}, {"t": "実践Claude Code入門", "a": "西見公宏・吉田真吾・大嶋勇樹", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F", "id": "4297153548"}, {"t": "Claude CodeによるAI駆動開発入門", "a": "平川知秀", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F", "id": "4297152754"}, {"t": "3時間で身につくClaude活用術", "a": "尾藤克之", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5495/9784866215495_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4866215496?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F", "id": "4866215496"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>


<h2 class="wp-block-heading">予想するだけじゃない、完全自動化のワークフローを構築</h2>



<p class="wp-block-paragraph">始める前に結末はなんとなく想像していて、効果が出ても「回収率300%！！」とかは到底無理で現実的には110％前後で大成功なんじゃないかと思って始めています</p>



<p class="wp-block-paragraph">その分他の分野にも手を出して成功体験にしようとしているしているのかスクレイピングとnote自動投稿ってわけです</p>



<p class="wp-block-paragraph">最悪競馬AIの精度が満足いくところまでいかなくても毎週全自動で</p>



<div class="wp-block-group is-style-emboss_box"><div class="wp-block-group__inner-container">
<p class="has-text-align-center wp-block-paragraph"><strong>スクレイピング　→　競馬AIで予想　→　予想結果をnoteに投稿</strong></p>
</div></div>



<p class="wp-block-paragraph">のワークフローだけでも財産になるし、何かに流用できると思ってます</p>



<h2 class="wp-block-heading">このシリーズの全体構成（今後の予定）</h2>



<p class="wp-block-paragraph">このシリーズでは数回に分けて需要ありそうな部分にフォーカスして記事作成を予定しています</p>



<p class="wp-block-paragraph">今時点では4回に分けて下記順番で作るつもり</p>



<ol style="background-color:#f3fafe80" class="wp-block-list -list-under-dashed has-background">
<li>過去データの収集
<ol class="wp-block-list">
<li><a href="https://javeo.jp/keiba-ai-challenge-02/" target="_blank" rel="noopener noreferrer">netkeibaからのスクレイピング</a></li>



<li>JRA-VAN Data Lab.からの収集　←これは断念</li>
</ol>
</li>



<li>AIを使った競馬AIの作成</li>



<li>AIを使った予想</li>



<li><a href="https://javeo.jp/keiba-ai-challenge-03/" target="_blank" rel="noopener noreferrer">予想のアウトプットでnote記事の自動作成と販売</a></li>
</ol>



<p class="wp-block-paragraph">作っていきながらボリューミーなったら2回に分けるとか追加機能ができたら分けるとかあるかもしれないので構成変更はご了承を</p>



<h2 class="wp-block-heading">今時点の状況</h2>



<p class="wp-block-paragraph">今時点ではAI未完成で<strong><span class="swl-marker mark_yellow">スクレイピングは完成とnote投稿8割くらい</span></strong>です</p>



<p class="wp-block-paragraph">スクレイピングは何段階かあるのと過去レース取得と毎週の自動取得が別物なので分けるかもって感じです</p>



<p class="wp-block-paragraph">あまり間延びしないように作っていくので追いかけてもらえると嬉しいです！</p>


<div class="p-blogParts post_content" data-partsID="4603">
<div class="jv-books" id="jv-books-ai" data-shelf="ai"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Claude・生成AIを学べる本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240" alt="面倒なことはChatGPTにやらせよう" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">面倒なことはChatGPTにやらせよう</p><p class="jv-book-author">カレーちゃん・からあげ</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4065342902">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4065342902">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240" alt="実践Claude Code入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">実践Claude Code入門</p><p class="jv-book-author">西見公宏・吉田真吾・大嶋勇樹</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297153548">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297153548">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240" alt="Claude CodeによるAI駆動開発入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Claude CodeによるAI駆動開発入門</p><p class="jv-book-author">平川知秀</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297152754">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297152754">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='ai';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "面倒なことはChatGPTにやらせよう", "a": "カレーちゃん・からあげ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F", "id": "4065342902"}, {"t": "実践Claude Code入門", "a": "西見公宏・吉田真吾・大嶋勇樹", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F", "id": "4297153548"}, {"t": "Claude CodeによるAI駆動開発入門", "a": "平川知秀", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F", "id": "4297152754"}, {"t": "3時間で身につくClaude活用術", "a": "尾藤克之", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5495/9784866215495_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4866215496?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F", "id": "4866215496"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/keiba-ai-challenge-01/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
