phpQueryを使って、スクレイピングをしようとしています。
text()で値をとることはできたのですが、
html()でタグをとることができません。
何故でしょうか。初心者の質問でお手数をおかけします。
php
1require_once('./phpQuery-onefile.php'); 2 3//urlはPOSTで取得できています。 4$fgc = file_get_contents('https://qiita.com/zaburo/items/465ca691aebad2b5691e'); 5$dom = phpQuery::newDocument($fgc); 6$title = $dom['title']->text(); //←こちらは値が取れて 7$kiji = $dom['.it-MdContent']->html(); //←こちらはエラーとなります 8 9$rs = array( 10 'title' => $title, 11 'kiji' => $kiji 12); 13//json を出力 14 header("Content-Type:application/json; charset=utf-8"); 15 echo json_encode($rs);
▼html()のエラーの内容
SyntaxError: JSON Parse error: Unrecognized token '<'
//▼追記しました。
html
1<table> 2 <tr> 3 <td>TITLE</td><td class="title"></td> 4 </tr> 5 <tr> 6 <td>kiji</td><td class="kiji"></td> 7 </tr> 8</table> 9<script> 10$(function(){ 11 function getAllData(postData){ 12 $.ajax({ 13 type : 'post', 14 url : 'request.php', 15 data : postData, 16 dataType : 'json', 17 success : function(data){ 18 19 $('.title').text(data.title); 20 $('.kiji').html(data.kiji); 21 22 }, 23 error : function(XMLHttpRequest,textStatus,errorThrown){ 24 console.log('読み込み失敗'+ errorThrown); 25 } 26 }); 27 } 28}); 29</script>
回答1件
あなたの回答
tips
プレビュー