PHPでDOMを使いサイトの更新状況を取得したいと妄想しています。RSSが目標とするサイトにない場合、自力でHTMLタグのなかから必要なのをつかむという作業が必要です。WEBスクレイピングともいうようなことです。
WEBスクレイピング:ネット上に公開された情報は一応セーフ。ただし…
「Webスクレイピングの法律周りの話をしよう! - Qiita」にあるように、著作権や個人情報保護の点から注意する必要があります。また、SNSのように会員だけが閲覧できる状態の情報を、一般公開のように利用するのは、NG…。
RSSは二次利用を前提としたものですからヨシとして、問題はそれが無い場合。DOM解析して取得した情報を自由に使えるか、という…。
PDO接続で、MySQLのテーブルを読むことができた~
以下のPHPは実際には動かないのですが、耄碌進行中の爺の覚書・備忘録です。間違いなどがあったら教えてくださいませ~。
<html> <body> <?php //db接続 define('DB_SETTING',ホスト名など接続に必要な文字列); //↑MySQL接続に必要な文字列を「定数」として作成 //↓try{}catch{}でひとくくり try{ $pdo = new PDO(DB_SETTING); //「定数」をセットしPDO稼働? //↓エラー処理のおまじない $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //↓SQLインジェクション対策のおまじない? $pdo -> setAttribute(PDO::ATTR_EMULATE_PREPARES, false); //↓「目的DBのテーブル名」は「定数」でセットしたDBの中にあるテーブル名 $stmt = $pdo->query("SELECT * FROM 目的DBのテーブル名"); //↑$pdoのquery(問い合わせ)で、目的テーブルの全部読む準備よろしく、 //db読み込み //↓while(){}までがひとくくりで、テーブル最後まで読んでくれる while($row = $stmt->fetch(PDO::FETCH_NUM)){ //↑$stmtでPDO使って1回読んだ内容をFETCH_NUM(添字数基準)で$row配列に入れてね //db内容表示 //foreach(){}でひとくくりの循環。$row[X]のX-1回繰り返す foreach($row as $value){ //↑($row as $value)を($row as $value => $content)とし //↓echo $content との例もOKみたい。キーと値の関係、爺には不明… echo $value."<br />"; } } //↓データベース接続でエラーがおこたっ時に処理 } catch(PDOException $e){ echo "error: ".$e->getMessage(); } //db切断 $pdo = null; ?> </body> </html>