ChatGPTで記事を生成するWordPressの無料非公式プラグイン

2024.10.09

Logging

おはようございます.ChatGPTで記事を生成するWordPressの無料非公式プラグインを作りました.動作環境はPHP8.1以上です.ご使用する場合、WordPressのプラグインフォルダに解答したフォルダを転送してご使用ください.

記事を量産する前にOpen APIにて事前にAPIKeyを取得してください.プラグイン管理画面より取得したキーを入力欄に入力し「変更を保存」をクリックし保存してください.

「変更を保存」ボタンはAPIKeyを保存するボタンになります.

保存後、タイトルや投稿日時、生成させたい記事に対してのキーワードをそれぞれ入力して「記事を量産する」ボタンをクリックすると記事の生成が始まります.尚、タイトルは生成記事を作るのに影響を与えません.記事生成に影響するのはキーワードのみとなります.

最後にプラグインのURLはこちらになります.

plugin/chatgpt-auto-article.zip

明日へ続く.(明日の記事は生成AIで生成されたものです)

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

APIKEY, ChatGPT, chatgpt-auto-article.zip, Open API, plugin, url, WordPress, キー, キーワード, タイトル, フォルダ, プラグイン, プラグインフォルダ, プラグイン管理画面, 保存, 最後, 無料非公式プラグイン, 生成, 生成AI, 生成記事,

ラッコキーワードを少し活用してみようって.

2024.06.03

Logging

おはようございます、ラッコキーワードを少し活用してみようって思って会員登録をしてみました.ラッコキーワードとはGさんのサジェストからキーワード候補を列挙してくれて、どのキーワードが多く使われているかなどがランク付けで表示してくれるサービスです.

ラッコキーワードの他にもいろいろなサービスを提供しています.

ラッコキーワードと生成AIをかけ合わせて記事の量産する方法や作ることは可能です.もし使用したい方はワードプレスになりますが、プラグインを作っているのでそちらを参照して頂けばと思いますが、自分はオススメしません.

理由は生成AIで量産したものを見抜くAIが開発された場合、今まで価値のあった記事が紙くずになる可能性があるのでオススメしません.面倒くさいかもしれないかもですが、人の代替はきかないと思っています😌派なので地道に記事を書くことが大切になるような気がします.

明日へ続く.

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

AI, Gさん, キーワード, キーワード候補, サービス, サジェスト, プラグイン, ラッコキーワード, ランク付け, ワードプレス, 代替, 会員登録, 価値, 可能性, 少し, , , 理由, 生成AI, 自分,

イラレの生成AIはプロンプト次第です。

2023.11.08

Logging

おはようございます、イラレの生成AIはプロンプト次第です。自分の肌感ではみんながよく使いそうなキーワードを使用すればそれなりのイラストやロゴが生成出来るのだけど、例えば自分の名前を入れたロゴを作ってみたいなのには、まだ応用が効かなく良いデザインが生成されないことが多いです。

ですが、ポリゴンとかそういうキーワードを盛り込むだけでまぁまぁ良いデザインが何度かの作業で生成されます。あと、生成されたデザインの色も生成AIで変更可能になっている。

要は使いようで良いデザインも劣化したデザインにもなるので、まずは短めの単語で生成して使用してみてください。その方が精度の良いデザインが生成されるはずです。

因みに下記には生成AIで作ったデザインが含まれています。

明日へ続く。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

イラスト, イラレ, キーワード, デザイン, プロンプト次第, ポリゴン, みんな, ロゴ, 下記, 作業, 使いよう, 単語, 名前, 応用, 生成AI, 短め, 精度, 肌感, 良いデザイン, ,

Photo by Pixabay on Pexels.com

世界2.0を今頃、読了しました。人となり。

2023.02.19

Logging

おはようございます。

昨日、皮膚科の待ち時間に世界2.0を読了しました。数日前に「ダァー」って読んで8割ぐらい読了していたので、あと2割しか読むところがなかったので待ち時間に読了。

中盤、自分が知らないキーワードとかも出てきたりしたので良い発見も有りました。因みにテクノロジーに疎い人が読むとこの本に記載された事全てが新鮮に伝わること間違いないです。

知らないことを知るということはとても良いことですよね😄。

メタップス vol.4 シンガポールでの起業と先見力について

自分が印象にとても残ったのは、テクノロジーとかよりも佐藤航陽さん自身のことを書かれていた最終章ですね。その章を読むと人となりを垣間見えることができます。なので、その章を読んだあと、最初の章を読むとテクノロジーが苦手な人でも頑張って読んでみようと思えるかも知れません。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

2割, 8割, キーワード, ダァー, テクノロジー, ところ, 中盤, 人となり, 佐藤航陽さん自身, 全て, 印象, 待ち時間, 最初, 最終章, , 疎い人, 皮膚科, , 良い発見, 読了,

Photo by Abby Chung on Pexels.com

基本情報技術者試験ワード集と単語帳作りアプリで学習の下準備をする方法! #FE #英語 #効率

2022.10.06

Logging

おはようございます、朝、3時半頃から起きています😪。

先日から英語の勉強をアプリではじめました、自分が使用しているのはモノグサというアプリです。このアプリをインストールしたのは二年前の話です、そのアプリを使用して効率良く英単語を覚えていってます、なんかよく分からないけど覚えて行けている🙄。

さて、それとは別に本題のお話です、単語帳作りアプリを使って基本情報技術者試験に出てくるワードを再学習しています。ワードの方は基本情報技術者試験ドットコムから引っ張ってきています、そのワードをCSV化してアプリに入れました。個人的に使用している分にはOKですが、これを公開や共有するとNGになりますので使用時はお気をつけてください🙇。

ワードを収取する方法はブラウザのコンソール画面に下記のコードを貼り付けて収集しました。
基本情報技術者試験ドットコムのキーワード集「あ」から「ん」までのリンクページをそれぞれ開きコンソール画面でコードを実行して、それをUTF8のファイルにペーストして一つのファイルにしてCSV保存。本当はnode.jsでコードを書いて実行でもしようかなと思っていたのですが、それすら面倒くさいと思ったので、こちらの地味な方法を選択しました。尚、行末に必要なカンマを追加して上げてくださいね🙄。

let s = [];
let $moji = function(m){
   return String(m).replace(/[\,|\n|'|"]/g," ");
};
Object.keys(document.querySelectorAll(".big")).forEach((e)=>{
    s[e] = "'" + $moji(document.querySelectorAll(".big")[e].innerText) + "'" + "," + "'" + $moji(document.querySelectorAll("ul > li > div > div")[e].innerText) + "'";
});
copy(s.join("\n"));

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

, CSV, FE, NG, OK, アプリ, インストール, お気, お話, キーワード, コード, これ, コンソール, それ, ドットコム, ブラウザ, モノグサ, ワード, 下準備, 下記, , 使用, 先日, 公開, 共有, , 効率, 勉強, , 単語帳, , 収集, , 基本, 学習, 情報, 技術者, , 方法, , 本題, 画面, 自分, 英単語, 英語, 試験, ,

Photo by Vlada Karpovich on Pexels.com

検索されなかったワード埋もれた価値について! #javascript #php

2022.09.26

Logging

おはようございます、今日は引き落とし日です🫠。

さて、今日は検索されなかったキーワードの価値のお話です。此処で言う検索されなかったというのは、エンターキーや検索ボタンを押さなかった、キーワードの価値のお話です、たぶん、その情報をGさんは収集してそうな気がします。GサイトやYサイト等のキーワード収集は基本出来ませんが、自サイトの検索フォームの情報を収集出来ます。

此処からは技術的なお話になりますが、検索ボタンを押した時とは別に文字入力をしたときの挙動を感知するプログラムを導入する事により比較的簡単に導入できるかと思います。例えば下記のようなjavascriptコードを検索フォームに導入します。

document.getElementById("sh").addEventListener("input",(e)=>{
    $.ajax({
        type: "post",
        url: "example.com/sh.php",
        data: {text:this.value},
        dataType: "json",
        success: function (response) {
            
        }
    });
});

あとはPHP側でデータを受信しデータベース等に保存すれば良いだけです。この検索されなかったワードは、結構価値があると思います。より細かな情報を取得したい方はIPアドレスどのページからの情報なのかも取得可能です。

これらのデータを元に販路開拓は十分出来ると思います。情報を保存する際に大量の情報が収集されるので、保存先に一工夫必要になります。JSで制御する手段もありますが、それだとあまり情報収集出来ないですからね。

因みにこのサイトに情報収集の処理は導入していません(今後の導入は未定)。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

addEventListener, ajax, document, getElementById, gt, input, javascript, php, quot, sh, エン, お話, キーワード, コード, サイト, ターキー, とき, フォーム, プログラム, ボタン, ワード, 下記, , 今日, 価値, 入力, 収集, 基本, 導入, 情報, 感知, 挙動, 文字, , , 検索, 此処, , 簡単, ,

YOUTUBEを閉じて職場にもどれ😏ごもっともです。

2022.04.18

Logging

おはよう御座います。

YOUTUBEでR25の動画を見て思うのですが、この人の話はわかる気がします。彼は客観的に物事の本質を見ていると思いますが、ユーザーの人気は二分してそうです。好きか嫌いにわかれるひとが多そうな成田さんです、そんな成田悠輔さんの知りたいという方は自分のブログの検索窓から「成田」とキーワードを入れると神回などの動画が見れたりしますので、そちらでご視聴ください。

成田悠輔さんに「20代はどう働くべき?」と聞いたら、「人目につかない場所にいろ」と言われました

YOUTUBEは見るものではなく創る側もの?、動画を自分で制作してYOUTUBEに上げることの方が面白いですよ。成田悠輔さんが言っているように人の評価を気にせずに自分の視点でモノづくりしていたら、時代が追いついたときに一気に花開くなんてこともあると思います。なので、なにか創作している方は他人の意見よりも何を発信したいかなどや目的を思案して創作するほうが良いと感じました。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

25, youtube, キーワード, こと, そちら, とき, どれ, ひと, ブログ, もの, ユーザー, 二分, , 人気, 他人, , , 制作, 創作, 動画, 嫌い, , 思案, 悠輔, 意見, 成田, , 時代, 本質, 検索窓, , 物事, 発信, 目的, 神回, 職場, 自分, , 視点, 視聴, 評価, ,

WindowsやMACのタイピングを表示するアプリと検索すれば!?

2022.01.18

Logging

この頃、気温が若干低いなという感覚があります、昨日なんて寒くてウォーキングを諦めました😌。

さてWindowsやMacのタイピングを表示するアプリと検索すれば、それなりのアプリが出てきますのでそちらを使用してみてください。では、ちょっと冷たいのでメモを残しときます。Macの場合、KeyCastrというフリーのアプリが有名らしいですね、因みにこのアプリ、Githubでしか公開していないので、ターミナルで操作とか出来る人じゃないとインストール出来なそうです。

Notion書きながらKeyCastrでタイピングを表示する

その他にもキーボードのログ(キーストローク)を表示するアプリは存在します。一応、リンクを貼っときますね。こちらから参照ください。👉https://ja.altapps.net/soft/keycastr リンク切れになっていた場合は自分で上記のようなキーワードで検索すれば見つかるはずです。

How To Display Keystrokes On macOS For FREE (Keycastr)

あと、GithubでKeyCastrをインストールする方法の動画も貼っときますね。
https://github.com/keycastr/keycastr

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

altapps, github, https, ja, KeyCastr, Mac, net, soft, Windows, あと, アプリ, インストール, ウォーキング, キー, キーボード, キーワード, こちら, ストローク, そちら, その他, それなり, ターミナル, ダイビング, パス, フリー, メモ, リンク, ログ, 上記, , 使用, 公開, 参照, 場合, 存在, 感覚, 操作, 昨日, 有名, 検索, 気温, 自分, 若干, 表示, ,

Huawei p30 liteのバッテリー交換をしてみました。

2021.06.22

Logging

Huawei p30 liteバッテリー交換をしてみました参考にした動画は下記になります。YOUTUBEで日本語でバッテリー交換などのキーワードで検索しても全然。p30 lite型のバッテリー交換動画が出てこないので英語でググってみました、するとヒット。因みに動画は下記の動画以外にもありますので、もし動画消えて見えない方は、英語で検索してみてください。

how to replacement huawei P30 lite battery 100% easy 100%working repair by idq1009 #huaweip30lite

例えば”Huawei p30 lite Battery change”というようなキーワードで検索するとバッテリー交換動画が出てきますので試してみてください。

※あと当然のことですがバッテリー交換は自己責任になりますので、トラブルが起きた場合やスマホ端末が動かなくなっても何も言えないという覚悟の上でスマホを分解しバッテリー交換してみてくださいね。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

30, Battery, change, huawei, LITE, youtube, キーワード, こと, スマホ, トラブル, バッテリー, ヒット, , 下記, 交換, , 分解, 動画, 参考, , 場合, 当然, , 日本語, 検索, 端末, 自己, 英語, 覚悟, 責任,

質問DATA検索を作りました。

2020.08.29

Logging

質問箱というサービスでじぶんに質問してくれる方がいます、そんな人達が使用してくれればなと思い、ちょこちょこっと作りました。OR検索はできません。ワンキーワードだけの検索ですが、役に立つかなと。

じぶんは重複した(似たような)質問には答えなくて良いかなと思います。なお、質問箱のデータは手動で登録しました。いちぶブログラムでデータを抜き取りましたが、未回答は完璧な手動での登録です…。

ちなみにこういう仕様のサービスは1時間もなく出来上がります、とても簡単なので・・・。ウェブサイトのサービスって基本的に簡単なので長年やっていると飽きます。とくに簡単なものはコードを書くのが面倒くさくなってなんでこんな簡単なコードを書かなくてはならないのかと思ってしまうことも過去に何度かありました。なので汎用性のあるコードを構えておいてコピペで使えるものを構えておくと良いですよ。長年、プログラムをやっていると飽きますね。

URLはこちら
https://zip358.com/QuestionTXT/

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

, data, OR, url, いち, ウェブ, キーワード, グラム, コード, こちら, こと, コピペ, サービス, サイト, じぶん, ちょこ, データ, プロ, プログラム, もの, ワン, , 仕様, 何度か, 使用, 回答, 完璧, , 手動, , 検索, 汎用性, 登録, 簡単, 質問, 過去, 重複, 長年,

All in One SEO一括、自動入力したった。

2020.07.16

Logging

All in One SEO一括、自動入力したった。そのままです。SEO入力欄にデータを流し込みました。前処理として記事のID番号を列挙してJSONで保存しそのIDデータを使用してSEOタイトル、SEO ディスクリプション、SEO キーワードに記事のタイトル、記事内容、タグをそれぞれ流し込みました。この結果は数ヶ月ぐらいかかると思いますが、良い方向に動いていほしいものです。

ここではJSONデータは記載していませんがプログラム処理から想像出来るかと思います。

<?php
date_default_timezone_set("Asia/Tokyo");
require_once(__DIR__ . '/../wp-load.php');
class db{
    public $db = NULL;
    function __construct()
    {
        $this->db = new PDO('mysql:dbname=DBNAME;host=HOST;charset=utf8;', 'USER', 'PASS');
    }
    public function tbl_update($id,$title,$comment,$keyword){
		//
		$sdb = $this->db->prepare("select * from wp_postmeta where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_title';");
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$ret = $sdb->execute();
		var_dump($sdb->rowCount());
		if($sdb->rowCount()){
			$sdb = Null;
			$sdb = $this->db->prepare("UPDATE wp_postmeta set  wp_postmeta.meta_value = :title where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_title';");
		}else{
			$sdb = Null;
			$sdb = $this->db->prepare("INSERT INTO wp_postmeta(post_id,meta_key,meta_value) VALUES (:id,'_aioseop_title',:title);");
		}
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$sdb->bindParam(":title",$title,PDO::PARAM_STR);
		$ret = $sdb->execute();
		//
		//
		$sdb = $this->db->prepare("select * from wp_postmeta where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_description';");
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$ret = $sdb->execute();
		if($sdb->rowCount()){
			$sdb = Null;
			$sdb = $sdb = $this->db->prepare("UPDATE wp_postmeta set wp_postmeta.meta_value = :comment where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_description';");
		}else{
			$sdb = Null;
			$sdb = $this->db->prepare("INSERT INTO wp_postmeta(post_id,meta_key,meta_value) VALUES (:id,'_aioseop_description' ,:comment);");
		}
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$sdb->bindParam(":comment",$comment,PDO::PARAM_STR);
		$ret = $sdb->execute();
		//
		//
		$sdb = $this->db->prepare("select * from wp_postmeta where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_keywords';");
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$ret = $sdb->execute();
		if($sdb->rowCount()){
			$sdb = Null;
			$sdb = $this->db->prepare("UPDATE wp_postmeta set wp_postmeta.meta_value = :keyword where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_keywords';");
		}else{
			$sdb = Null;
			$sdb = $this->db->prepare("INSERT INTO wp_postmeta(post_id,meta_key,meta_value) VALUES (:id,'_aioseop_keywords' ,:keyword);");
		}
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$sdb->bindParam(":keyword",$keyword,PDO::PARAM_STR);
		$ret = $sdb->execute();
		$sdb = Null;
		$this->db = Null;
        return "{'id':$id,'title':'$title','comment':'$comment','keyword':'$keyword'}";
	}
}
//$_POST["ID"] = 9541;
$obj = (object)json_decode(file_get_contents("./postid.json"));
foreach($obj->rows as $key=>$val){
	$ID = (int)$val->ID;
  $page = get_post($ID);
	$title = mb_strimwidth($page->post_title,0,60,"…");
	$content = $page->post_content;
	$content = wp_strip_all_tags( $content );
	$content = mb_strimwidth(strip_shortcodes( $content ),0,160,"…");
	$keyword = array();
	$posttags = get_the_tags($ID);
	if ( $posttags ) {
	  foreach ( $posttags as $tag ) {
		$keyword[] = $tag->name;
	  }
	}
	$DB = new db();
	print count($keyword)>0?$DB->tbl_update($ID,$title,$content,implode(",",$keyword)):$DB->tbl_update($ID,$title,$content,"");
	$DB = Null;
}

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

39, all, Asia, class, construct, date, db, default, DIR, function, ID, in, json, lt, null, once, one, php, public, quot, require, SEO, set, timezone, Tokyo, wp-load, キーワード, ここ, それぞれ, タイトル, タグ, データ, ディスクリプション, プログラム, もの, 一括, 使用, 保存, 入力, 入力欄, 内容, 処理, 列挙, 前処理, 想像, , 方向, 番号, 結果, 自動, 記事, 記載,

bingから画像を一括ダウンロードするアプリ。

2020.06.14

Logging

任意のキーワード検索でbing画像からを一括ダウンロードするアプリを作りました。img-dl-bing-sss.exeファイルを起動すると動画のようなコンソール画面が開くので入力してダウンロードを開始してください。ダウンロードが終わると勝手に閉じます。

なお、一応R指定にも対応しています、キーワードがR指定項目かもと思う場合、Yと入力ください。
新垣結衣さんの熱烈なファンでもないですが、綺麗な方だとは思います。ということで例として使用させて頂きました、、、関係者の皆様ごめんなさい。

bingから画像を一括ダウンロードするアプリ

このアプリはウィンドウズ10環境で動作します。また、動作しないブロックされる場合は下記のURL等を参照しブロックを解除しお使いください。ブロック解除方法:https://forest.watch.impress.co.jp/docs/news/1130655.html

※なお、Bingサイトのデザインが変わった場合、動作しなくなりますのであしからず。

画像ダウンロードアプリのソースコードはこちら(古いコードですので動かない場合がありますVS2019C#)

using System;
using System.Runtime.CompilerServices;

namespace img_dl_bing_sss
{
    class Program
    {
        static void Main(string[] args)
        {
            string keyword = "",R18="";
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("処理中は画面や立ち上がったブラウザを閉じないでください。\n" +
                "処理が完了すると「***終了します***」と表示されます。\n" +
                "何かキーを押し終了してください\n\n");


            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("↓検索キーワードを入力しエンターを押してください");
            keyword = Console.ReadLine();
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("↓R指定ですか?\nY or N かの文字を入力しエンターを押してください");
            R18 = Console.ReadLine();
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("***画像のダウンロード量(画像数ではありません) 1?999 ***");
            var scroll = 9999;
            try
            {
                scroll = int.Parse(Console.ReadLine());
                if(scroll >=1 && scroll <= 999)
                {
                    scroll = scroll * 9999;
                }
            }
            catch
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("***検索キーワードが不適切です。***");
            }
            SuiteTests img =  new SuiteTests();
            if (img.Imgdlok(keyword, R18, scroll))
            {
                img.Dispose();
            }
            else {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("***検索キーワードが不適切です。***");
            }
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("***終了します***");
            
        }
    }
}
// Generated by Selenium IDE
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using Xunit;
using AngleSharp;
using AngleSharp.Html.Parser;
using AngleSharp.Html.Dom;
using AngleSharp.Dom;
using System.Runtime.InteropServices;
using Newtonsoft.Json;
using System.IO;
using System.Net;

public class SuiteTests : IDisposable {
  public IWebDriver driver {get; private set;}
  public IDictionary<String, Object> vars {get; private set;}
  public IJavaScriptExecutor js {get; private set;}
  public SuiteTests()
  {
    driver = new ChromeDriver();
    js = (IJavaScriptExecutor)driver;
    vars = new Dictionary<String, Object>();
  }
  public void Dispose()
  {
    driver.Quit();
  }
  public bool Imgdlok(string keyword="", string R18= "",int scroll = 999999)
    {
        if (keyword == "") return false;
        Console.Clear();
        string path = System.IO.Directory.GetCurrentDirectory() + "\\IMG\\";
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        driver.Navigate().GoToUrl("https://www.bing.com/?scope=images&nr=1&FORM=NOFORM");
        driver.Manage().Window.Size = new System.Drawing.Size(945, 1030);
        driver.FindElement(By.Id("sb_form_q")).Click();
        driver.FindElement(By.Id("sb_form_q")).SendKeys(keyword);
        driver.FindElement(By.CssSelector(".search.icon.tooltip")).Click();
        try
        {
            if (R18 == "Y")
        {
            driver.FindElement(By.LinkText("設定の変更")).Click();
            driver.FindElement(By.CssSelector("#settings_safesearch div:nth-child(3)")).Click();
            driver.FindElement(By.Id("adlt_set_off")).Click();
            driver.FindElement(By.Id("sv_btn")).Click();
            driver.FindElement(By.Id("adlt_confirm")).Click();
        }
        }
        catch
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("***R指定ではありません***");
        }
        try
        {
            double ps = 0;
                for (int i = 99; i < scroll;i+=1000)
            {

                js.ExecuteScript("window.scrollTo(0," + i + ")");
                Console.CursorLeft = 0;
                ps = (double)(((double)i / (double)scroll) * 100);
                Console.Write("処理中::{0:D2}%",(int)ps);
            }
        }
        catch
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("***Max画像まで到達しました***");
        }
        Console.ForegroundColor = ConsoleColor.White;
        Console.WriteLine("\n***ダウンロード処理開始***\n");
        int cnt = 0;
        var elm = driver.FindElements(By.ClassName("iusc"));
        driver.Manage().Window.Minimize();
        foreach (var e in elm) {
           dynamic jsondata = JsonConvert.DeserializeObject(e.GetAttribute("m"));
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine((string)jsondata.murl + "::wait.....");
            string imgurl = (string)jsondata.murl;
            if(4 <= Path.GetExtension(imgurl).Length && Path.GetExtension(imgurl).Length <= 5)
            {
                try
                {
                    cnt++;
                    string ext = Path.GetExtension(imgurl);
                    WebClient myWebClient = new WebClient();
                    myWebClient.DownloadFile(imgurl, path + "No-" + cnt + "-" + keyword + ext);
                    myWebClient.Dispose();
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("***" + cnt +"::" + imgurl + "\n::ダウンロード中、画面を閉じないでください...***");
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("***" + cnt + "::ダウンロード済***");
                }
                catch
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("***ダウンロードが失敗しました***");
                }

            }else{
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("***画像の拡張子が不明のためダウンロードが失敗しました***");
            }
        }
        Console.ForegroundColor = ConsoleColor.Blue;
        Console.WriteLine("***ダウンロード完了しました***\n" + path);
        return true;
  }
}

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

10, bing, exe, img-dl-bing-sss, url, VS, アプリ, ウィンドウズ, キーワード, コード, こちら, こと, コンソール, サイト, ソース, ダウンロード, デザイン, ファイル, ファン, ブロック, 一括, 下記, 任意, 使用, , 入力, 動作, 動画, 勝手, 参照, 場合, 対応, 指定, 新垣結衣, , 方法, 検索, 環境, 画像, 画面, 皆様, , 綺麗, 解除, 起動, 開始, 関係者, 項目,

WEB担当者様各位、サジェスト機能(予測変換)を意識している?

2020.01.24

Logging

サジェスト機能(予測変換)を意識しているブロガーやアファリエターの方は結構多いと思いますが、自分はそれを全然意識はしていませんし、調査して文章を書いていません。本当は意識した方が良いだろうけれど、例えば人工知能でサジェスト機能を使用すると下記のような候補が表示されます。

動画を再生してみてください:サジェスト機能の動画

サジェスト機能で候補が現れる単語(キーワード)の単語を散りばめて記事を書いても上位表示は難しいでしょう。候補が現れるという事は激戦区状態です、そんな内容で記事を書くと殆どはGさんは拾ってくれません。それよりかこれから検索されそうなキーワードを散りばめて記事を書くことをオススメします。

前から自分のブログに書いているように好きな事を書くことのほうが大事です。そして有益な情報をオープンに公開している記事はいづれ検索サーチが進化すると拾ってくれます。三年後には人工知能が記事の意味を理解できるところまで技術は進化すると思っています。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

web, アファ, おすすめ, キーワード, こと, これ, サーチ, サジェスト, それ, たー, ブロガー, ブログ, リエ, , 上位, 下記, 予測, , 人工, 使用, 候補, 公開, 内容, 再生, 動画, 単語, 各位, 変換, 大事, 情報, 意味, 意識, 担当者, 文章, , 有益, 本当, 検索, 機能, 殆ど, 激戦区, 状態, 理解, 知能, 自分, 表示, 記事, 調査, 進化,

あるキーワードをライクするTwitter API。

2019.11.06

Logging

さくらレンタルサーバー、もともとmecab(メカブ)が入っているらしい。
自動であるキーワードに対してライクする方法(Twitter API)です。
たぶん、こんなコードはなかったと思います、
過去記事「ワードプレス過去記事のツイートをボット化する方法。」と併用してお使いください。
そうでないと動きませんので…。
知り合いエンジニアさんとかに組み込んでもらってください。

<?php
function mecab_tw_like($txt="",$connection=Null){
    if(!$txt)return false;
    if(!is_object($connection))return false;
    $cmd = "echo "$txt" | mecab";
    exec($cmd, $opt, $return_ver);
    //var_dump($opt);
    foreach($opt as $key=>$val){
        $r = explode("t",$val);
        if(preg_match("/名詞/",$r[1])){
            $statuses = $connection->get(
                'search/tweets',
                array(
                    'q'                 => $r[0],
                    'count'             => '3',
                    'lang'              => 'ja',
                    'locale'            => 'ja',
                    'result_type'       => 'recent',
                    'include_entities'  => 'false'
                )
            );
            if(is_array($statuses->statuses) and $statuses->statuses){
                foreach( $statuses->statuses as $tweet ){
                    $id = $tweet->id;
                    $result = $connection->post(
                        'favorites/create',
                        array(
                            'id' => $id
                        )
                    );
                }
            }
        }
    }
}

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

API, cmd, connection, echo, exec, false, function, if, is, like, lt, Mecab, null, object, opt, php, quot, return, tw, Twitter, txt, ver, エンジニア, キーワード, コード, サーバー, さくら, ツイート, プレス, ボット, メカブ, ライク, レンタル, ワード, 併用, 方法, 自動, 記事, 過去,

google NewsをRSSで取得してjsonで返却するPHPプログラム

2018.12.22

Logging

<?php
//$_POST["sh"]...検索キーワード 
if ($_POST["sh"]) {
	$sh = urlencode(@xss_defence($_POST["sh"]));
	$res = simplexml_load_file("https://news.google.com/news/rss/headlines/section/q/$sh/?ned=jp&hl=ja&gl=JP");
	rss($res);
}
function rss(object $obj = null):void
{
	if (isset($obj->channel->item)) {
		if ($obj->channel->item) {
			$cnt = 0;
			foreach ($obj->channel->item as $item) {
				$result[$cnt]["title"] = (string)$item->title;
				$result[$cnt]["link"] = (string)$item->link;
				$result[$cnt]["pubDate"] = (string)$item->pubDate;
				$result[$cnt]["description"] = (string)$item->description;
				$result[$cnt]["source"] = (string)$item->source;
				$cnt++;
			}
		}
	}
	echo json_encode($result);
}

function xss_defence(mixed $val):mixed
{

    if(!isset($val))return false;
    if(is_array($val)){
        foreach ($val as $key => $value) {
            # code...
            $val[$key] = strip_tags($value);
            $val[$key] = htmlentities($val[$key],ENT_QUOTES);
        }
    }else{
        $val = strip_tags($val);
        $val = htmlentities($val,ENT_QUOTES);
    }
    return $val;
}

google NewsをRSSで取得してjsonで返却するPHPプログラムです。
ご自由にご使用ください。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

0, channel-, cnt, com, defence, file, foreach, function, gl, Google, gt, headlines, hl, https, if, isset, item, ja, jp, json, load, lt, ned, News, null, obj, object, php, POST, quot, res, RSS, section, sh, simplexml, urlencode, void, xss, キーワード, プログラム, 取得, 検索, 返却,

CodeGridという有料記事を読みはじめて

2018.06.28

Logging


CodeGridという有料記事を読みはじめて
月800円で最新?のWEB技術情報が読めるのはお得かなと
WEB関係者は目を通すだけでも違うかなと思っています。
ちなみに自分は3日前から読みはじめました。
いまのところ興味がある分野から読んでみようと思っていますが
記事の量が多いので・・・ほぼ走り読みです。
殆どの情報は自分にとって新鮮な情報ですが
これって・・・いわゆる超プロ技術との技術差なのかもしれない、
そして情報って大事だなと思います。
グーグルで検索して出てくる情報は
それほど価値のある情報ではないなと感じます。
価値のある情報をオープンにしている人もいますが
やはり正確に価値のある情報を仕入れるには有料記事が
ベストなのかもしれません。
https://app.codegrid.net/
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

CodeGrid, WEBサイト, Web制作, WEB技術情報, WEB関係者, キーワード, グーグル, ところ興味, 価値, 分野, 技術差, 有料記事, 未来像, 殆ど, 超プロ技術, ,

誰もSEOについて語らなくなってきている。

2016.06.12

Logging


誰もSEOについて語らなくなってきている。
SEOの攻略法って基本的にソーシャルメディア以外なし。
もうひとつ付け加えるとするならば、今までのアクセス数はそのサイトの信用となりうるという事です。
ドメインも買えないならば、日々、記事を書き続けることにしか、チャンスはないとも言える。
自分が出した、いまの結論です。
簡単にいえば、サイトの構造というのは意味をなさない。javascriptのエラーが吐かれていないかとかは、注意はした
方が良いですが・・・。
※昔からあるサイト構造をガラッと変えるのはリスクを伴います。
YOUTUBEなどを貼り付けてたら、JSエラーを吐き出したりしますが、さほど、影響はないに等しいです。
そんな事より、サイトの中身を充実させたほうが今は良いんですね。どこから訪問者が来たか、検索キーワードが
何なのか分からなくなってきている中で、どうすればアクセス数が増えるかなど分かりづらくなっています。
アクセス数は百の壁、千の壁、1万の壁という様に壁があります。凡人が超えれる壁は千の壁までだと自分は
思っています。日に1000人のアクセス数を出すことは不可能ではないです。ただ、1万の壁を超えるのは難しい。
その壁を超えるには広告やメディア戦略が必須となります。なのでお金もかけないでアクセス数をUPするには
ソーシャルメディアを活用することをオススメします。
[余談]
なぜ、昔からのサイト構造を一気に変更するのにはリスクを伴うのか?
答えは簡単で、クローラーが今まで見に行っていたURLが急に見えなくなると、このサイトは移転した可能性があるという判断をするため、急激に検索順位が下がっていく可能性あります。
検索アルゴリズムは移転という可能性を排除しないからです。
なので文言や旧ファイルは残しておく事が一般的です。
?

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

, javascript, JS, SEO, youtube, アクセス, いま, エラー, キーワード, こと, サイト, ソーシャル, チャンス, どこ, ドメイン, メディア, もうひとつ, リスク, , , 中身, , , , 信用, 充実, , , 影響, 意味, 攻略, , 日々, , 検索, 構造, 注意, , 簡単, 結論, 自分, 記事, 訪問者, ,

2016年見に行く映画はこれ。No1

2015.12.30

Logging


「人生の約束」っていう映画、なんだかこの映画を見ていると
ライブドア事件に何だか、酷似しているという感じがあります。
そこから、何かしらヒントを得たのかもしれませんが
予告見ただけ観たいなと感じたので
この映画は2016年に間違いなく、
初の映画になると思います。
映画の予告をみて「友よ」っていうタイトルの映画だとばかり
思っていてググッて全然、映画の公式ページにもたどり着けなく
IT企業社長、友などと検索していたのですが全然、ヒットしなかったので
TOHOシネマで検索して上映予定から公式ページに
辿り着いたわけですが・・・。
おそらく自分のように「人生の約束」というタイトル名より
映画予告から「友よ、映画」などのキーワードで検索している人も
少なくないと思っています。そのへんのSEO対策すると
もっと宣伝できるのになぁと感じます。
公式ページへのリンクは下記。
http://www.jinsei-no-yakusoku.jp/
 
https://www.youtube.com/watch?v=OLJm36Mv_eM

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

IT企業社長, No1, SEO, TOHOシネマ, キーワード, ググッ, ここら, タイトル, タイトル名, ヒント, ライブドア事件, リンク, 上映予定, 下記, 予告, 人生, 公式ページ, , 大事, 映画予告, 約束,

ツイッターとかブログとかする理由は。ほんとコレだけ。

2015.02.27

Logging


ツイッターとかブログとかする理由は、ほんとコレだけです。小遣い稼ぎです、コレ以外に無いです。なのでダラダラとうんちく話とか書いているわけです。文字数とキーワードって結構重要度高いです。記事は数撃ちゃ当たるという考えで試行錯誤しながら記事を書いています。この頃はSNSやHTTPS経由で流れてくる人がいるので・・・どういったキーワードでここに辿り着いたのかがまったくわからない始末です。ちなみにグーグルのアクセス解析を導入しています(無料)、どの地域(県)から訪問したのかなどやブログ直帰率などもわかります、スマホやガラケで閲覧している人は基本的に東京からアクセスになります、何故、そうなるのかが自分はわからないのです(簡潔に説明できない)。ちなみに自分のサイトは海外からも見に来てくれたりしてます・・・・。でも、なかなか難しいです。自分がこの記事だったらアクセスが伸びそうだとか思っても上手く伸びないですよ。続けることでアクセス数が伸びることは確かですが、それが収益に結びつくかと言えば・・・そうでもないです。
よく巷で、ガンガンアクセス数が上がるとか、収益数倍増とか嘘ですから引っかからないように・・・コレばかりは時の運かもしれないと思ったほうが良いです。
ツイッターはアクセス数稼ぎもありますけど、それプラス、メモ書きとか純粋につぶやきとして使ってます。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

HTTPS経由, アクセス, アクセス数, アクセス数稼ぎ, アクセス解析, うんちく話, ガラケ, キーワード, グーグル, くわ, ツイッター, つぶやき, ブログ直帰率, ほんとコレ, メモ書き, 収益, 収益数倍増, 小遣い稼ぎ, 理由, 重要度,

映画:イコライザーを観てきましたのでレビューします('A`)。

2014.11.13

Logging

イコライザーを観てきましたので感想を残しておきます。それほど期待はしていなかったので、見終わった時は意外によかった感がありました(感動するような映画ではないです)。若干、残酷なシーンがあるものの。全体を通して違和感無くストーリーを楽しめた感があります。ただ、一昔前の流行ったこういうアクション映画を結構観ている方がみると、ありきたりなストーリーと思う人もいると思います。ひとつ付け加えると映像もよく作りこまれていた映画かなと感じました。アクション映画というより暴力描写が苦手な方はおすすめ度は低いですが、好きな方は見れない映画ではないと思います。
この映画のキーワードは元CIA?です{デンゼル・ワシントン}。
追記:R15でもおかしくないかなと思いましたが・・・・。

 
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

タグ

A`, R15, アクション映画, イコライザー, おすすめ度, キーワード, デンゼル・ワシントン, ひとつ, , 元CIA, 全体, 始末, 感想, 映像, 暴力描写, 期待, 若干, 追記, 違和感無くストーリー,