NHKの番組を検索してデスクトップ通知するWEBアプリを作ろうとしている.
2024.09.26
おはようございます.NHKの番組を検索してデスクトップ通知するWEBアプリを作ろうとしています.NHK番組表はAPIから取得しそれを検索及びデスクトップ通知する機能を自分のために作ろうとしています.環境としてはPHP8.3で動き、フレームワークはLaravelを使用.フロント側はReatで作ったものをBABELで変換してJsとして動かしています.
因みに動作しているところはこんな感じですね.
今週の土曜日に一通りのことが出来るようにして一旦公開しようと思っています.最初は自分だけが使用できるものにしてバグ等がなければ正式に告知して運用していこうと思っています.
あまり重要はなさそうだけども、nasuneを使っている人なら分かるかも知れないけど番組名で録画予約する機能がないので不定期な番組は録画予約できないのが、作ろうと思ったきっかけです.何故、NHKの番組表しか無いのかは番組表のAPIはNHKしかなかったからです、クローラーを作って取得する手もあるのだけど、自分は民法で見るのは固定番組なので時間設定で事足りるから、こういう仕様になってます.
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
API, BABEL, JS, Laravel, nasune, NHK, NHK番組表, Reat, きっかけ, クローラー, デスクトップ, バグ, フレームワーク, 一旦, 仕様, 固定番組, 土曜日, 最初, 民法, 録画,
Devのサイトマップ
2024.05.08
おはようございます、devのサイトマップがルートから繋がっていなかったので繋げたという話.自分は繋がっていると思いこんでいたけどそうではなかった.wpにはAll in one seoというプラグインを入れているとサイトマップが自動で生成されるのだけどもDevの方のリンクも取得してくれると思っていたがそうではなかったので手動で追加しました.
All in one Seoの設定手順は、設定からサイトマップタブをクリックしURL追加項目に追加するだけです.これをすることによりクローラーが巡回してくれるようになります.巡回してくれからと言って検索に拾ってくれるかというとそうでもない.
競合が多いと検索の隙間を見つけないとなかなか難しいのが現状です.SEOは最低限で良いと思う理由はゴリゴリしているとスパムサイトに間違われたりするので最低限で十分だと思います.
そしてAI技術が進化していく中でどこまでクローラーが収集した情報が検索順位の基準データとして判断されているのだろうかと思う今日この頃です.AI攻略にシフトした方がこれからは検索上位を狙えそうですね.AI攻略とは人が読んで理解しやすいかどうかだと思います.
分かりにくい記事は嫌煙されそうです.
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
AI技術, AI攻略, all in one seo, dev, SEO, wp, クローラー, サイトマップタブ, スパムサイト, プラグイン, ルート, 今日この頃, 手動, 最低限, 検索順位, 現状, 競合, 設定手順, 隙間,
ヤフオクサイトで使用できるChrome拡張機能
2020.06.09
ヤフオクサイトで使用できるChrome拡張機能を作ってみました。昨日から失業手当も無くなったので、心置きなくクラウドワークスで提案営業をしています。やっていて思ったのが、結構、単価が安いぞということです。まだ、案件を頂いていませんが、、、正直なところ、中々難しいかなと思います。
契約数、1件のところに30人とか応募が来るわけです・・・その中から1件選ばれるわけですが、1/30の確率です。最初の1件の案件を取るのも厳しいかなと思います。でも数件の案件が取れればあとには続きそうです。仕事が見つからないので当分、クラウドワークスで頑張ります。ちなみにこのヤフオクの拡張機能ですが次ページに自動で遷移しません。どうもYahooさんがクローラーかどうかを判断しているプログラマを入れているみたいですね。回避するにはグーグルドライバーなんかを入れてPythonあたりで操作したら、ダミーとはわからないでしょうけど、お客様に納品するとなるとひと手間かかるなと思います。
以上、現場からでした?。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
0, 1, 30, App, Chrome, com, https, jGSKN-s, Pyt, watch, www, Yahoo, youtube, あと, グーグル, クラウド, クローラー, こと, サイト, ところ, ドライバー, プログラマ, ヤフオク, ワークス, 中, 仕事, 使用, 判断, 単価, 営業, 回避, 失業, 契約, 当分, 応募, 手当, 拡張, 提案, 数, 昨日, 最初, 案件, 機能, 次ページ, 正直, 確率, 自動, 遷移,
クローラーするサービスの基礎。
2016.11.19
クローラーするサービスの基礎のソースを載せときます。殆どサイボウズ・ラボの人が書いたコードです。
このサンプルソースをそのまま貼り付けても一階層のリンクしか取得できません。
再帰処理の部分をコメントアウトしているからです。ちなみにコメントアウトを外してもメモリオーバーでおそらく
大体のサーバでエラーが出力されます。どうしたら良いのかといえば、DBに1階層目のリンクデータ、2階層目のリンクデータという様に保存する機能を施す。次にajaxで階層を受け渡しながら、再帰処理を行う。
再帰処理が終わる要素はそれ以上、下階層がないことを判断する。そのためには保存したデータを検索することが重要になる。=(イコール)
新規にデータを登録しているうちは、再帰処理を終わらせないようにすることが大事になる。
これの機能を加えることで巡回する事が可能になる。ここで注意しないといけないのが、外部リンクを保存しないことです。外部リンクまで保存していると巡回は永遠に終わらないでしょう・・・。
トイウコトデ
ほぼ??コピペソースを貼っときます。
<?php
echo json_encode($obj);
exit;
function get_linkarray($link)
{
$context = stream_context_create(array("http" => array("method" => "GET", "header" => "User-Agent: simplecrawler.library.php 0.0.1")));
$resultR = array();
$resultS = simplecrawler($context, $link, $link, parse_url($link));
foreach ($resultS as $k => $v) {
$resultR[] = $v;
}
return $resultR;
}
function simplecrawler($context, $link, $burl, $base, $linkArrayDat = array())
{
$linkArrayPre = crawler_link(crawler_page($link, $burl, $base, $context), $link, parse_url($link));
foreach ($linkArrayPre as $k => $v) {
if (!isset($linkArrayDat[$v])) {
$linkArrayDat[$v] = $v;
//$linkArrayDat = array_merge($linkArrayDat, simplecrawler($context, $v, $burl, $base, $linkArrayDat));
}
}
return $linkArrayDat;
}
function crawler_page($link, $burl, $base, $context)
{
if (strpos($link, $burl) === 0) {
$page = @file_get_contents($link, false, $context);
return $page === FALSE ? null : $page;
} else {
return null;
}
}
function crawler_link($page, $burl, $base)
{
$linkArray = array();
if ($page === null) {
return $linkArray;
}
preg_match_all("/[\s\n\t]+href\s?=\s?”(.*?)”/i", $page, $href);
for ($i = 0; $i < count($href[1]); $i++) {
$link = $href[1][$i];
if (preg_match("/^http(s)*\:\/\//", $link)) {
$result = $link;
} elseif (preg_match("/^\/.+$/", $link)) {
$result = $base["scheme"] . "://" . $base["host"] . $link;
} else {
// echo $base["path"] . “\n”;
$b = preg_split("/\//", dirname($base["path"]));
$t = preg_split("/\//", $link);
foreach ($t as $v) {
$l = $v === "." ? true : ($v === ".." ? array_pop($b) : array_push($b, $v));
}
$result = $base["scheme"] . "://" . $base["host"] . join("/", $b);
}
$linkArray[$result] = $result;
}
return $linkArray;
}
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1, 2, ajax, db, アウト, イコール, うち, エラー, オーバー, クローラー, コード, ここ, こと, コメント, これ, サーバ, サービス, サイボウズ, サンプル, ソース, それ, ため, データ, トイウ, メモリ, ラボ, リンク, 一, 下, 事, 人, 保存, 再帰, 処理, 出力, 判断, 取得, 可能, 基礎, 外部, 大事, 大体, 巡回, 新規, 検索, 機能, 殆ど, 永遠, 注意, 登録, 要素, 部分, 重要, 階層,