PHPphpQueryを↓から引っ張ってくる
※参考:PHPでajaxとjson
※参考:ajaxでInstagramの写真を抜いて上げてみる
※参考:テストコードajaxapp
★ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php ini_set('display_errors',1); require("phpQuery-onefile.php"); $html1 = file_get_contents("https://gammasoft.jp/blog/how-to-download-web-page-created-javascript/"); $html2 = file_get_contents("https://gammasoft.jp/blog/how-to-download-web-page-created-javascript/"); if($html1 === $html2){ echo("ソースは一致しています"); }else{ echo("ソースは一致していません"); } ?> </body> </html> |
メモ
URLによっては、一致するものとしないものがある。
広告によってソースの中身が毎回違ってくる?
以下が1つの回答か?
スクレイピング対象のページの HTML に最初から欲しい情報があるとは限りません。ブラウザでページをロードした後、 JavaScript によって後から情報がダウンロードされる仕組みをもつサイトも数多く存在します。また、ボタンクリックなどのアクションを起こさないと情報が取り出せないこともあるでしょう。
ajaxとPHPのコードは以下も参照
http://vbnettips.blog.shinobi.jp/javascript/javascript%20jquery%E3%81%A7ajax%E3%82%92%E4%BD%BF%E3%81%84p
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test ajax</title> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script> //Ajax関数 function getData(){ $.ajax({ type: "POST", url: "ajax1.php", data: {id: $('#id').val()} }).done(function(res){ // ajaxがOK $('#msg').text(JSON.parse(res)); }).fail(function(){ //取得エラー alert('取得エラー'); }).always(function(){ //後処理(処理することがあれば) }); return false; } </script> </head> <body> <h2>test ajax json</h2> ID:<input type="text" id="id" size="10" maxlength="10"><br> <p id="msg">テストメッセージ</p> <button onclick="getData();">Ajax</button> </body> </html> |
ajax1.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php //処理モードの取得 $id= -1; if(isset($_POST["id"]) == true && $_POST["id"] != ""){ $id = intval($_POST["id"]); } $arrData = array( 0 => "@@@@@", 1 => "AAAAA", 2 => "BBB", 3 => "CCCCCCC" ); $strRet = ""; if(0 <= $id && $id <= 3){ $strRet = $arrData[$id]; } echo (json_encode($strRet)); ?> |
この記事へのコメントはありません。