phpなんて何年ぶりに触るのか・・・そう、あの頃は、まだ、wordpressの日本語が分離してて・・・(昔話)
というわけで先日書いた「ツイート用過去記事のタイトルとURLの一覧出力 - スナックelve 本店」のphp版です。
環境作るの面倒でサーバーでデバッグしちゃった★←マネしないでください。
はてなブログの過去ログ取得するよ
こちらに接頭語、URLを入れると500件取得できます★
なーにやりたいことはもうわかってるから余裕余裕・・・と思ったら・・・大変でした・・・。
<?php $head= $_POST["head"]; $url = $_POST["url"] ; $outputText = ''; $p = 1; $l = 0; while ('true') { $readPage = $url . "archive?page=" . (string)$p; #URL取得 try { $f = file_get_contents($readPage); } catch (Exception $e) { break; } $dom = new DOMDocument; $dom->loadHTML(mb_convert_encoding($f, 'HTML-ENTITIES', 'UTF-8') ); if ($dom==false){break;} $xpath = new DOMXPath($dom); $H1_nodes = $xpath->query('//a[@class="entry-title-link"]'); $oldL=$l; foreach ($H1_nodes as $node) { if($l >= 500){break;} $outputText = $outputText . $head ." ". $node->nodeValue ." ". $node->getAttribute("href") . "</br>\n"; $l++; } if($oldL==$l){break;} if($l >= 500){break;} $p = $p + 1; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>はてなブログの過去ログ取得したよ</title> </head> <body> <?php echo $outputText; ?> </body> </html>
というわけで、これに値を渡すフォームは
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>はてなブログの過去ログ取得するよ</title> </head> <body> <form method="POST" action="HatenaAllPostList.php"> <label>最初に追加する言葉</label> <input type="text" name="head" /><br /> <label>はてなブログのURL</label> <input type="text" name="url" /> <input type="submit" value="送信" /> </form> </body> </html>
なーんも値チェックしてないからイジメないでください(;´Д`)
アクセス数があれだったら消すっすw
参考サイト
PHPなんもわからんかったので多すぎる・・・もっとあったはず・・・
PHP: DOMXPath::query - Manual
[PHP]DOM, XPathを使ったスクレイピング(HTMLのタグ内容取得) | PHP Archive
PHP を使ったフォームの操作 / Web Design Leaves
[PHP]DOM, XPathを使ったスクレイピング(HTMLのタグ内容取得) | PHP Archive
ブラウザで見やすくする!PHPで改行処理を行う方法 | TechAcademyマガジン
php - DOMXpath - Get href attribute and text value of an a element - Stack Overflow
XPathのまとめ、要素の参照方法いろいろ │ Web備忘録
https://old-pine.net/content/php%E3%81%AEdomdocument%E3%81%A7%E5%8F%96%E3%82%8A%E8%BE%BC%E3%82%93%E3%81%A0html%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AB%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91
HTMLやXMLってどうやってパースして処理すればいいの? | 株式会社LIG