回答編集履歴

1 セレクターの記法について

insomnyaa

insomnyaa score 26

2016/05/13 22:27  投稿

抜粋なのか元のコードに文法ミスがあるようですが、
とりあえず、適当なページをスクレイプしてみました。たぶん「dd.revRvwUserEntryCmt description」の様に途中にスペースが入るとクラスを認識しないようです。
 
※ 失礼しました。 スペースはセレクターの記法として使用できますが子孫要素になります。クラスを2つ以上持つ場合はドットでつなげること、「dd.revRvwUserEntryCmt description」ではなく「dd.revRvwUserEntryCmt.description」と記述することで使用できます。  
```
<pre>
<?php
require_once("phpQuery-onefile.php");
$count = 0;
$html = file_get_contents("http://review.rakuten.co.jp/item/1/306476_10000049/1.1/");
$doc = phpQuery::newDocument($html);
$lists = $doc["div.revRvwUserSecCnt"];
//$doc["div.revRvwUserSecCnt.description"];
foreach ($doc["div.revRvwUserSecCnt"]->find("dd.revRvwUserEntryCmt") as $li) {
   $count++;
   echo $count.". ";
   echo pq($li)->text().PHP_EOL;
}
?>
</pre>
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る