PHPを使ってDOMとかWEBスクレイピングというのを実行し、RSS設置してないサイトの更新状況を取得したいと妄想しています。結果物を、Wordpressに自動投稿する、というのが目標であります(≒ほぼ妄想)…。
現在までの進行状況や、先の見通しを中間的に整理しようかと…ま、耄碌進行中の爺の備忘録、ということで。
対象URLの抽出まで進行
これまで作業して、なんとかたどり着いたのがチェックする対象記事の個別URL抽出までです。主な流れは次の通りです。
- XAMPP稼働
- Apache、MySQL稼働
- PHPでMySQL接続
- MySQLから、対象となるサイトの代表URL、チェックするタグ、SURL相対指定を絶対指定に補正するための文字列、など取得
- MySQLから、前回のチェック結果取得した、個別記事URL、個別記事のサイトIDを取得
- DOMして、対象サイト内の記事更新場所から、今回の個別記事表示につながるURL(多くは相対指定)を取得
- 今回の個別記事表示につながるURLを絶対指定に修正
- 外部サイトへのリンクと判明したら対象から除外(文書構造が異なった場合、予定した情報が取得できない…)
- 前回個別記事URLと今回個別記事URLを比較し、差分となった今回個別記事URLを、個別記事調査対象URLとして確定する。
- 個別記事調査対象URLとサイトIDを関連付ける
↑ここまでできたです
WP原稿として必要な情報を付け加え投稿…できたらいいな~
↓つぎから(≒妄想)です
- 個別記事調査対象URLを順次巡回し、記事見出し、本文概略などを取得し、新原稿の用意をする
- 新原稿に、日付、カテゴリ、公開状態など必要な属性を付け加え、WPのMySQLに書き込む
- 前回のチェック結果取得した、個別記事URLなどをすべて消去し、今回のチェック結果を書き込む
- MySQL切断
- Apache、MySQL 停止
- XAMPP 終了
いつの時点で前回データがあるMySQLのテーブルを今回のデータに書き換えるのが良いか、まだ思案中です。
先はまだ長そうだが、Wordpressにどう投稿するかも課題だな~
また、どこかのレンタルサーバにUPしたときには、DOMするのに「simple_html_dom.php」、自動運転に「CRON」、などが動かないと…。
- PHP:タイマー的に実行するときは、CRONを使うらしい - PageTAKA's blog
- PHP Simple HTML DOM Parser download | SourceForge.net
- PHP:HTMLタグを頼りに見出しを読みだす - PageTAKA's blog
Wordpressに投稿するには、ダッシュボードから「新規投稿」へ移動し、見出し・本文などを貼り付ける、または手入力、というのが一般的です。
メールによる投稿もできそうです。
そして、今回横着を考えているのが、直接WPの記事が保管されているMySQLのテーブルにデータを書き込むというようなことです。どうやったらうまくいくのか、直接書き込みして齟齬が生じないのか、まだ検討未済…記事番号とか…う~ん??? 先は長そうです。