スナックelve 本店

バツイチ40代女の日記です

はてなブログの過去記事500件取得するよ

phpなんて何年ぶりに触るのか・・・そう、あの頃は、まだ、wordpressの日本語が分離してて・・・(昔話)
というわけで先日書いた「ツイート用過去記事のタイトルとURLの一覧出力 - スナックelve 本店」のphp版です。
環境作るの面倒でサーバーでデバッグしちゃった★←マネしないでください。
はてなブログの過去ログ取得するよ
f:id:elve:20200302004513p:plain
こちらに接頭語、URLを入れると500件取得できます★
f:id:elve:20200302004551p:plain

なーにやりたいことはもうわかってるから余裕余裕・・・と思ったら・・・大変でした・・・。

<?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