pagetaka

写真、PC、ネット、岡山、旅の話題をお届けします

PHP:WEBスクレイピング、対象URLの抽出まで進行。先は長い

PHPを使ってDOMとかWEBスクレイピングというのを実行し、RSS設置してないサイトの更新状況を取得したいと妄想しています。結果物を、Wordpressに自動投稿する、というのが目標であります(≒ほぼ妄想)…。

現在までの進行状況や、先の見通しを中間的に整理しようかと…ま、耄碌進行中の爺の備忘録、ということで。

対象URLの抽出まで進行

これまで作業して、なんとかたどり着いたのがチェックする対象記事の個別URL抽出までです。主な流れは次の通りです。

  1. XAMPP稼働
  2. ApacheMySQL稼働
  3. PHPMySQL接続
  4. MySQLから、対象となるサイトの代表URL、チェックするタグ、SURL相対指定を絶対指定に補正するための文字列、など取得
  5. MySQLから、前回のチェック結果取得した、個別記事URL、個別記事のサイトIDを取得
  6. DOMして、対象サイト内の記事更新場所から、今回の個別記事表示につながるURL(多くは相対指定)を取得
  7. 今回の個別記事表示につながるURLを絶対指定に修正
  8. 外部サイトへのリンクと判明したら対象から除外(文書構造が異なった場合、予定した情報が取得できない…)
  9. 前回個別記事URLと今回個別記事URLを比較し、差分となった今回個別記事URLを、個別記事調査対象URLとして確定する。
  10. 個別記事調査対象URLとサイトIDを関連付ける

↑ここまでできたです

WP原稿として必要な情報を付け加え投稿…できたらいいな~

↓つぎから(≒妄想)です

  1. 個別記事調査対象URLを順次巡回し、記事見出し、本文概略などを取得し、新原稿の用意をする
  2. 新原稿に、日付、カテゴリ、公開状態など必要な属性を付け加え、WPのMySQLに書き込む
  3. 前回のチェック結果取得した、個別記事URLなどをすべて消去し、今回のチェック結果を書き込む
  4. MySQL切断
  5. ApacheMySQL 停止
  6. XAMPP 終了

いつの時点で前回データがあるMySQLのテーブルを今回のデータに書き換えるのが良いか、まだ思案中です。

先はまだ長そうだが、Wordpressにどう投稿するかも課題だな~

また、どこかのレンタルサーバにUPしたときには、DOMするのに「simple_html_dom.php」、自動運転に「CRON」、などが動かないと…。

Wordpressに投稿するには、ダッシュボードから「新規投稿」へ移動し、見出し・本文などを貼り付ける、または手入力、というのが一般的です。

メールによる投稿もできそうです。

そして、今回横着を考えているのが、直接WPの記事が保管されているMySQLのテーブルにデータを書き込むというようなことです。どうやったらうまくいくのか、直接書き込みして齟齬が生じないのか、まだ検討未済…記事番号とか…う~ん??? 先は長そうです。