質問: $msg . phpQuery::newDocument($html)->find(".subleader")->text() ."です"; echo $msg; ``` 上記のように書いたのですが、目的通り、クラス名から、課題名とリーダー名、副リーダー名の情報を取得することができました。 **Q1)** ここで教えていただきたいのですが、上記の場合、対象サイトには、1度だけ情報を取りに行っていると考えていいのでしょうか? 自分の手でブラウザを操作して移動したりするのでなく、こういうスクリプトを通じて他のサイトの情報を取得する場合、相手のサーバーに負担をかけると法に触れることもあるので頻度に気をつけるべし聞きました。上記のコードを実行するには1秒もかかってない感じなのですが、3度も取得しに行っているとすると、よくないかと思うんです。 いかがでしょうか? **Q2)** ``` 担当部署:第3営業チーム のべ担当者数:(25人) 進捗管理担当者:システム管理課長 ...... ``` 対象のHTMLがこのような形で記述されている場合の、「第3営業チーム」「25人」「システム管理課長」をそれぞれ取得したいのですが、どう書けばいいのでしょうか?クラス名を通じての取得しかわからず、困っています。 「html全体を最初から見ていって、”担当部署”という文字があったらその次のtdの内容」みたいな指示の仕方かと思うのですが。 以上2点、よろしくお願いいたします。
回答: 方向性が全く違う質問はわけていただけると。 なぜなら「解決済み」とするには「全てに回答しなければならない」という印象を与え、回答の敷居が高くなって回答が得られにくくなります。 私見です。 Q1 > > 相手のサーバーに負担をかけると法に触れることもあるので頻度に気をつけるべし聞きました。上記のコードを実行するには1秒もかかってない感じなのですが、3度も取得しに行っているとすると、よくないかと思うんです。 > > > 回数の問題ではないです。 法に「何回までならOKよ」というのはありません。 もちろん「見つからなかったらOK」でもありません。 相手方のサーバーの利用規約に禁止事項として書かれていたら否応なしにアウトです。 もしその1回の通信を何千人か同時にしたら・・・?極論ですが置きえない話ではないですよね。 利用規約に謳われていなかったとしても、慎重には慎重を期して、相手方に許可を得てから行うのがトラブルなくて済みます。 Q2 完全に丸投げです。 phpQuery利用を決めたのでしたら、phpQueryのマニュアルや機能をきちんと確認してまずは自分なりにやってみてください。 思うところは何となくありそうですし、思うとおりに組んでみて、そこで想定通りできていないところや起きた問題を以て質問してください。