WEB制作メモ

web制作・ビジネス・アイデア・生活・ホームページ制作・更新など

goutteによるスクレイピング facebookから取得 javascript部分

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自体をクリック取得はできない