トップページ > プログラム > 2016年04月05日 > 5k7a1AT7

書き込み順位&時間帯一覧

26 位/185 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000002000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©2ch.net

書き込みレス一覧

【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©2ch.net
254 :デフォルトの名無しさん[]:2016/04/05(火) 12:08:31.00 ID:5k7a1AT7
【OS名】MacのMAMP
【PHPのバージョン】5.6.10
【連携ソフトウェア】なし
【質問内容】
こちらのページの、ページ数がいくつあるかをスクレイピングで取得したいです。
http://www.amazon.com/gp/offer-listing/0996275460/?condition=new
このページの場合だと、4という数字を取得したいです。

<!DOCTYPE html>
<html lang = "ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>テストプログラム</title>
</head>
<body>

<?php
$dom = new DOMDocument;
@$dom->loadHTMLFile('http://www.amazon.com/gp/offer-listing/0996275460/?condition=new');
$xpath = new DOMXPath($dom);

$num_pages = $xpath->query('//ul[@class="a-pagination"]/li[last()-1]/a');

var_dump($num_pages);
echo $num_pages;
?>

</body>
</html>
【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©2ch.net
255 :デフォルトの名無しさん[]:2016/04/05(火) 12:11:59.63 ID:5k7a1AT7
続きになります。

PHPの入門書を何回か読んで、ネットの情報を読んで手探りで実践しているところです。
実行した所、このような結果が帰ってきます。
object(DOMNodeList)#3 (1) { ["length"]=> int(0) }

$num_pagesのlengthのintが0ということは、
どこかでミスがあり$num_pagesに何も格納されていないと思い、
いろいろ試してミスを探してみましたがわかりませんでした。

$num_pages = $xpath->query('//ul[@class="a-pagination"]/li[last()-1]/a');
の所にミスが有ると思い、いろいろなパターンで試してみました。

$num_pages = $xpath->query('/body//div[@class="a-text-center a-spacing-large"]/ul/li[last()-1]/a');
などと、
XPathの正規表現を確認しながら、
[@class=""]やlast()などを削除して余計なものをつけずに
なんでもいいから値を取得しようとしても取得できず、

いろいろなパターンを試してみましたが、
結果は
object(DOMNodeList)#3 (1) { ["length"]=> int(0) }
ばかりで変わりませんでした。

勉強不足で非常につまらない所で間違えているとは思うのですが、
今の私にはどこが間違っているかわかりませんので、
お知恵を貸しいただけませんでしょうか。

ご指摘いただけますと非常に嬉しく思います。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。