goutteによるスクレイピングでjavascript部分は取得できないと思われるが・・・・やってみたい
`いいね! `
これは取得できるか
urlエンコードではないな
なにかのコードであろう
特殊文字での指定
い
は
"い"
HTML4.01で定義されている特殊な文字
「&キーワード;」、「&#番号;」という2通りの記述方法
投稿ページからのいいねのリンク取得
response2 = $cli->request('GET', 'https://www.facebook.com/pg/share4649/posts/?ref=page_internal');
何か値が取れている
$link = $response2->selectLink('いいね!');
$linkをvardump
["document":"Symfony\Component\DomCrawler\Crawler":private]=>
object(DOMDocument)#326 (34) {
["textContent"]=>
ソースで確認すると
javascriptのようなものがはいっている
画面では、実行されているのか表示されている。
これを取得したい。
var_dump($link->document);
これはエラーになる
var_dumpで見えているprivateの値を取得したい
phpクラスのプライベートメンバ変数にアクセス
この方法はうまくいかない
投稿の個別ページならばどうか
https://www.facebook.com/share4649/posts/1951735451785723
いいね!が反応しないだけ?
違う言葉ならどうか
エラーになった
selectLink goutte
の使い方
わかりやすい解説
https://hnw.hatenablog.com/entry/20120115
あやしいので単純なテスト
https://www.yahoo.co.jp/
$response2 = $cli->request('GET', 'https://www.yahoo.co.jp/');
$link = $response2->selectLink('ヘルプ')->link();
$crawler = $cli->click($link);
var_dump($crawler->html());
これはうまくいく
再度テスト
select linkの設定
Facebookについて
今度はちゃんと遷移した。
結論
画面上や取得できるデータとしてjsのソースは取得している
javascriptが実行できた場合、その、文字列は表示される
表示されたHTML自体をクリック取得はできない