1.用IE9打开
后,点击右上角的Sign In后,然后输入用户名和密码:
点击Sign in去登陆。
然后就可以看到已经登陆了:
2.很明显,其中的:
| https://accounts.google.com/ServiceLoginAuth | 
就是我们要去登陆时,所访问的地址,其中的post数据是:
| continue=https%3A%2F%2Fwww.google.com.hk%2F&dsh=-8258142449249395731&hl=en&GALX=JeKuKwpO1kM&pstMsg=1&dnConn=&checkConnection=youtube%3A449%3A0&checkedDomains=youtube&timeStmp=&secTok=&_utf8=%E2%98%83&bgresponse=%21A0JshyAfjVtBxUQkh0XxQTU7YQIAAAAeUgAAAAYqAObFsjS5wKDdydyQQLZNu1DZ8VbDsE2l0n72Pki8ePly6msM6-zQgAfxxjiVEPBCBjM–g5vMOErerxreRx10V98U_2enOTLD6hJGdVUadehwIUs9NqlFE5Buq5sijWUfYVvjBVqPHjXfv7nsr518MKHIAlTy5OoU71WWcZYPe1h9nZE4teiMPCbQHCSCxFwIkc0v8kHwpg5esRfGuaKH8i5NH28spLdWpXXopgaqm_WDoKbUmPZYJanTUhe8VX8afHZhBpEXT6VmooANFq6EaMYr5_UcLBgJfUH8An67VIESjSGN0HPKQ&Email=xxx@gmail.com&Passwd=xxxxxxxxxxxxxxxx&signIn=Sign+in&PersistentCookie=yes&rmShown=1 | 
格式化一下,方便看清楚:
continue=https%3A%2F%2Fwww.google.com.hk%2F dsh=-8258142449249395731 hl=en GALX=JeKuKwpO1kM pstMsg=1 dnConn= checkConnection=youtube%3A449%3A0 checkedDomains=youtube timeStmp= secTok= _utf8=%E2%98%83 bgresponse=%21A0JshyAfjVtBxUQkh0XxQTU7YQIAAAAeUgAAAAYqAObFsjS5wKDdydyQQLZNu1DZ8VbDsE2l0n72Pki8ePly6msM6-zQgAfxxjiVEPBCBjM--g5vMOErerxreRx10V98U_2enOTLD6hJGdVUadehwIUs9NqlFE5Buq5sijWUfYVvjBVqPHjXfv7nsr518MKHIAlTy5OoU71WWcZYPe1h9nZE4teiMPCbQHCSCxFwIkc0v8kHwpg5esRfGuaKH8i5NH28spLdWpXXopgaqm_WDoKbUmPZYJanTUhe8VX8afHZhBpEXT6VmooANFq6EaMYr5_UcLBgJfUH8An67VIESjSGN0HPKQ Email=xxx@gmail.com Passwd=xxxxxxxxxxxxxxxx signIn=Sign+in PersistentCookie=yes rmShown=1
对应的,很明显,其中核心参数就是Email和Passwd,以及PersistentCookie=yes,表示记住密码。
另外,对应的cookie是:
Direction Key Value Expires Domain Path Secure HTTP only Sent GAPS 1:USKpQnqkSYrVAhApy9b84CpdjyzxTQ:7HcRROaII7PCbZhD Sent GoogleAccountsLocale_session en Sent GALX JeKuKwpO1kM Sent NID 67=bZtuaZDdaBFpnLQxW4VZAo_urwszZYT6RyTYKkg_cCpwGjoQUE2aI6PQq2Pyb6lKKHaWcKALp3YHYj297X1ZhEP6aDqJUG4gHluQEYDcqGlvMIhh8CwbzZi8_VXwQS51 Sent PREF ID=81d5c3a5968905d8:U=c3ff37527545fdab:LD=en:TM=1349920137:LM=1363070993:S=GmpE2_ZOYRF1qvj7 Received GoogleAccountsLocale_session en At end of session Yes No Received GAPS 1:8qyZ0Qd2I6wSy7kEkAT_VfSKKErhFQ:EwkCfkIMGSijc57v Thu, 12-Mar-2015 09:12:15 GMT / Yes Yes Received NID 67=tj6LI4FlShUjkq3_FlJ7fTZYAW4bUItoDwFp_0GjGRlQFswHl2TBG72gHNlAMjf-ja1VIvZUFzFCYCrVi7gcY_X4fNLhqjepRfB5-TkSTBbDc7bsr4vnGCfJG7NauvdU1IHyBQU2UXJYCDMulUKaic-288b_dTnyT1NzR2Wu7y7RgoJ1IZG0JmXsJzc- Wed, 11-Sep-2013 09:12:15 GMT .google.com / No Yes Received SID DQAAALwAAAA_a0BLm4YsqKSfOebqXPJnzhVLDKT3iSnPIXu1Ey_MSRPt-yDuz_NlFXdQzfwZFXgbUNuTLaDxbNKafBnS63xKOzsSmVSLgF6FFFySehg9amGSBeZYficyBi1Q_CQBKf5KCnZEkiUQE9glO06Zg39HcY1oAQC5tUIq-h2DtJTxZrXCTBw8DlUZ8ZkwpOAJ8hBMxdsJAz49KLuGA0rplaS8JwfLnXUQQjqfIsUt4E8TWvgFJj-XV0x9iJ6MRNaUbYc Fri, 10-Mar-2023 09:12:15 GMT .google.com / No No Received LSID DQAAAL0AAAC6cFNUd1JYEXyvGUTS5bi06T-CFhmckTxZKV6-mxKSvn_ldu8Y9e37nYes3xFjr2CIzn90B39nrh24_Gtr2dd-T9I-egW72bSq161GwGlOu_tL5Yu6_643Q907xXc9XTo9uZOw3RN_2CbzLQmBVVqaoVkvGqFG_FQb5hgqvmYYYURLLP8u9gBo_O5fLsaUdqZOlWEYeGxXPxrSvj_5buDIN7yvH_jMJhwWGwKJOZoWQdLdow7zJleHqkvMj5RAFPI Fri, 10-Mar-2023 09:12:15 GMT / Yes Yes Received HSID A163iCeUzycH4Ue8N Fri, 10-Mar-2023 09:12:15 GMT .google.com / No Yes Received SSID AMHGlwpgVv2sY3CkI Fri, 10-Mar-2023 09:12:15 GMT .google.com / Yes Yes Received APISID fuZjiKg_OXx2clqs/ANmmBDFqw4lK4_BQM Fri, 10-Mar-2023 09:12:15 GMT .google.com / No No Received SAPISID qxGncn6r5LqaBBbS/AQ4kCCpKZvvtr5VaU Fri, 10-Mar-2023 09:12:15 GMT .google.com / Yes No
所以,接下来,就是先去用代码模拟核心参数,试试是否可以直接登录了。
如果不可以,再去考虑余下的参数,以及相关的cookie了。
3.结果发现,使用简单的代码:
            /*
                continue=https%3A%2F%2Fwww.google.com.hk%2F
                dsh=-8258142449249395731
                hl=en
                GALX=JeKuKwpO1kM
                pstMsg=1
                dnConn=
                checkConnection=youtube%3A449%3A0
                checkedDomains=youtube
                timeStmp=
                secTok=
                _utf8=%E2%98%83
                bgresponse=%21A0JshyAfjVtBxUQkh0XxQTU7YQIAAAAeUgAAAAYqAObFsjS5wKDdydyQQLZNu1DZ8VbDsE2l0n72Pki8ePly6msM6-zQgAfxxjiVEPBCBjM--g5vMOErerxreRx10V98U_2enOTLD6hJGdVUadehwIUs9NqlFE5Buq5sijWUfYVvjBVqPHjXfv7nsr518MKHIAlTy5OoU71WWcZYPe1h9nZE4teiMPCbQHCSCxFwIkc0v8kHwpg5esRfGuaKH8i5NH28spLdWpXXopgaqm_WDoKbUmPZYJanTUhe8VX8afHZhBpEXT6VmooANFq6EaMYr5_UcLBgJfUH8An67VIESjSGN0HPKQ
                Email=xxx@gmail.com
                Passwd=xxxxxxxxxxxxxxxx
                signIn=Sign+in
                PersistentCookie=yes
                rmShown=1
             */
            Dictionary<string, string> postDict = new Dictionary<string, string>();
            postDict.Add("hl", "en");
            postDict.Add("Email", txbEmail.Text);
            postDict.Add("Passwd", txbPassword.Text);
            postDict.Add("signIn", "Sign+in");
            postDict.Add("PersistentCookie", "yes");
            string loginGoogleUrl = "https://accounts.google.com/ServiceLoginAuth";
            //songInfo.realAddr = crifanLib.getUrlRespHtml(loginGoogleUrl, headerDict, stHtmlCharset, postDict);    
            string loginRespHtml = crifanLib.getUrlRespHtml(loginGoogleUrl,null, postDict);是无法正常登陆的。
4.所以还需要另外从头到尾的搞清楚,google 是如何登陆的。
目前看来是:
(1)先访问:
| https://www.google.com.hk/ | 
相关的cookie为:
Direction Key Value Expires Domain Path Secure HTTP only Sent NID 67=uKGQYf4LRq2bC34tVSeraLXVTszv8qQ8Ten3tp3v51kkZd1c-tdxgPT7H1gY5Ok7ICHj1n9GPvkEOmG15s3etVVeNa3mb-ZbwcZe6koXfDhyXwgMS_xONpZpH0F2RThU Sent PREF ID=c8e5fc96ddb70edd:U=695e28e9ddfa15ac:FF=1:LD=en:NW=1:TM=1349920742:LM=1363078280:SG=1:S=RXWt2Ey6U7sZxcuG Received PREF ID=c8e5fc96ddb70edd:U=695e28e9ddfa15ac:FF=1:LD=en:NW=1:TM=1349920742:LM=1363079516:SG=1:S=kKC4jvadyFHqLEva Thu, 12-Mar-2015 09:11:56 GMT .google.com.hk / No No
(2)再访问:
| https://accounts.google.com/ServiceLogin?hl=en&continue=https://www.google.com.hk/ | 
cookie为:
Direction Key Value Expires Domain Path Secure HTTP only Sent GAPS 1:nU96JiEPddHvG7Ve2efCsMM0YWYk_w:kIonKP6ZVPh87aVb Sent GoogleAccountsLocale_session en Sent GALX JeKuKwpO1kM Sent NID 67=bZtuaZDdaBFpnLQxW4VZAo_urwszZYT6RyTYKkg_cCpwGjoQUE2aI6PQq2Pyb6lKKHaWcKALp3YHYj297X1ZhEP6aDqJUG4gHluQEYDcqGlvMIhh8CwbzZi8_VXwQS51 Sent PREF ID=81d5c3a5968905d8:U=c3ff37527545fdab:LD=en:TM=1349920137:LM=1363070993:S=GmpE2_ZOYRF1qvj7 Received GoogleAccountsLocale_session en At end of session Yes No Received GAPS 1:USKpQnqkSYrVAhApy9b84CpdjyzxTQ:7HcRROaII7PCbZhD Thu, 12-Mar-2015 09:11:59 GMT / Yes Yes
(3)再去:
| https://accounts.google.com/ServiceLoginAuth | 
cookie为:
Direction Key Value Expires Domain Path Secure HTTP only Sent GAPS 1:USKpQnqkSYrVAhApy9b84CpdjyzxTQ:7HcRROaII7PCbZhD Sent GoogleAccountsLocale_session en Sent GALX JeKuKwpO1kM Sent NID 67=bZtuaZDdaBFpnLQxW4VZAo_urwszZYT6RyTYKkg_cCpwGjoQUE2aI6PQq2Pyb6lKKHaWcKALp3YHYj297X1ZhEP6aDqJUG4gHluQEYDcqGlvMIhh8CwbzZi8_VXwQS51 Sent PREF ID=81d5c3a5968905d8:U=c3ff37527545fdab:LD=en:TM=1349920137:LM=1363070993:S=GmpE2_ZOYRF1qvj7 Received GoogleAccountsLocale_session en At end of session Yes No Received GAPS 1:8qyZ0Qd2I6wSy7kEkAT_VfSKKErhFQ:EwkCfkIMGSijc57v Thu, 12-Mar-2015 09:12:15 GMT / Yes Yes Received NID 67=tj6LI4FlShUjkq3_FlJ7fTZYAW4bUItoDwFp_0GjGRlQFswHl2TBG72gHNlAMjf-ja1VIvZUFzFCYCrVi7gcY_X4fNLhqjepRfB5-TkSTBbDc7bsr4vnGCfJG7NauvdU1IHyBQU2UXJYCDMulUKaic-288b_dTnyT1NzR2Wu7y7RgoJ1IZG0JmXsJzc- Wed, 11-Sep-2013 09:12:15 GMT .google.com / No Yes Received SID DQAAALwAAAA_a0BLm4YsqKSfOebqXPJnzhVLDKT3iSnPIXu1Ey_MSRPt-yDuz_NlFXdQzfwZFXgbUNuTLaDxbNKafBnS63xKOzsSmVSLgF6FFFySehg9amGSBeZYficyBi1Q_CQBKf5KCnZEkiUQE9glO06Zg39HcY1oAQC5tUIq-h2DtJTxZrXCTBw8DlUZ8ZkwpOAJ8hBMxdsJAz49KLuGA0rplaS8JwfLnXUQQjqfIsUt4E8TWvgFJj-XV0x9iJ6MRNaUbYc Fri, 10-Mar-2023 09:12:15 GMT .google.com / No No Received LSID DQAAAL0AAAC6cFNUd1JYEXyvGUTS5bi06T-CFhmckTxZKV6-mxKSvn_ldu8Y9e37nYes3xFjr2CIzn90B39nrh24_Gtr2dd-T9I-egW72bSq161GwGlOu_tL5Yu6_643Q907xXc9XTo9uZOw3RN_2CbzLQmBVVqaoVkvGqFG_FQb5hgqvmYYYURLLP8u9gBo_O5fLsaUdqZOlWEYeGxXPxrSvj_5buDIN7yvH_jMJhwWGwKJOZoWQdLdow7zJleHqkvMj5RAFPI Fri, 10-Mar-2023 09:12:15 GMT / Yes Yes Received HSID A163iCeUzycH4Ue8N Fri, 10-Mar-2023 09:12:15 GMT .google.com / No Yes Received SSID AMHGlwpgVv2sY3CkI Fri, 10-Mar-2023 09:12:15 GMT .google.com / Yes Yes Received APISID fuZjiKg_OXx2clqs/ANmmBDFqw4lK4_BQM Fri, 10-Mar-2023 09:12:15 GMT .google.com / No No Received SAPISID qxGncn6r5LqaBBbS/AQ4kCCpKZvvtr5VaU Fri, 10-Mar-2023 09:12:15 GMT .google.com / Yes No
post数据是上面已经列出来的:
(4)接着还要去:
| https://accounts.google.com/CheckCookie?continue=https%3A%2F%2Fwww.google.com.hk%2F&hl=en&chtml=LoginDoneHtml&checkedDomains=youtube&checkConnection=youtube%3A449%3A0&pstMsg=1 | 
cookie为:
Direction Key Value Expires Domain Path Secure HTTP only Sent GAPS 1:USKpQnqkSYrVAhApy9b84CpdjyzxTQ:7HcRROaII7PCbZhD Sent GoogleAccountsLocale_session en Sent GALX JeKuKwpO1kM Sent NID 67=bZtuaZDdaBFpnLQxW4VZAo_urwszZYT6RyTYKkg_cCpwGjoQUE2aI6PQq2Pyb6lKKHaWcKALp3YHYj297X1ZhEP6aDqJUG4gHluQEYDcqGlvMIhh8CwbzZi8_VXwQS51 Sent PREF ID=81d5c3a5968905d8:U=c3ff37527545fdab:LD=en:TM=1349920137:LM=1363070993:S=GmpE2_ZOYRF1qvj7 Sent GAPS 1:USKpQnqkSYrVAhApy9b84CpdjyzxTQ:7HcRROaII7PCbZhD Sent GoogleAccountsLocale_session en Sent GALX JeKuKwpO1kM Sent NID 67=bZtuaZDdaBFpnLQxW4VZAo_urwszZYT6RyTYKkg_cCpwGjoQUE2aI6PQq2Pyb6lKKHaWcKALp3YHYj297X1ZhEP6aDqJUG4gHluQEYDcqGlvMIhh8CwbzZi8_VXwQS51 Sent PREF ID=81d5c3a5968905d8:U=c3ff37527545fdab:LD=en:TM=1349920137:LM=1363070993:S=GmpE2_ZOYRF1qvj7 Sent GAPS 1:8qyZ0Qd2I6wSy7kEkAT_VfSKKErhFQ:EwkCfkIMGSijc57v Sent GoogleAccountsLocale_session en Sent GALX JeKuKwpO1kM Sent LSID DQAAAL0AAAC6cFNUd1JYEXyvGUTS5bi06T-CFhmckTxZKV6-mxKSvn_ldu8Y9e37nYes3xFjr2CIzn90B39nrh24_Gtr2dd-T9I-egW72bSq161GwGlOu_tL5Yu6_643Q907xXc9XTo9uZOw3RN_2CbzLQmBVVqaoVkvGqFG_FQb5hgqvmYYYURLLP8u9gBo_O5fLsaUdqZOlWEYeGxXPxrSvj_5buDIN7yvH_jMJhwWGwKJOZoWQdLdow7zJleHqkvMj5RAFPI Sent NID 67=tj6LI4FlShUjkq3_FlJ7fTZYAW4bUItoDwFp_0GjGRlQFswHl2TBG72gHNlAMjf-ja1VIvZUFzFCYCrVi7gcY_X4fNLhqjepRfB5-TkSTBbDc7bsr4vnGCfJG7NauvdU1IHyBQU2UXJYCDMulUKaic-288b_dTnyT1NzR2Wu7y7RgoJ1IZG0JmXsJzc- Sent PREF ID=81d5c3a5968905d8:U=c3ff37527545fdab:LD=en:TM=1349920137:LM=1363070993:S=GmpE2_ZOYRF1qvj7 Sent SID DQAAALwAAAA_a0BLm4YsqKSfOebqXPJnzhVLDKT3iSnPIXu1Ey_MSRPt-yDuz_NlFXdQzfwZFXgbUNuTLaDxbNKafBnS63xKOzsSmVSLgF6FFFySehg9amGSBeZYficyBi1Q_CQBKf5KCnZEkiUQE9glO06Zg39HcY1oAQC5tUIq-h2DtJTxZrXCTBw8DlUZ8ZkwpOAJ8hBMxdsJAz49KLuGA0rplaS8JwfLnXUQQjqfIsUt4E8TWvgFJj-XV0x9iJ6MRNaUbYc Sent HSID A163iCeUzycH4Ue8N Sent SSID AMHGlwpgVv2sY3CkI Sent APISID fuZjiKg_OXx2clqs/ANmmBDFqw4lK4_BQM Sent SAPISID qxGncn6r5LqaBBbS/AQ4kCCpKZvvtr5VaU Received GoogleAccountsLocale_session en At end of session Yes No Received GAPS 1:Wr2moK1dys0wGLtQCd1RsetKP-Y_gA:P66TlY_dNgO3mDqm Thu, 12-Mar-2015 09:12:16 GMT / Yes Yes Received SID DQAAALwAAAA_a0BLm4YsqKSfOebqXPJnXIEQgWEIX7J3ClujKgCbgom2W3XpCtXYXOwSmUXAc0S10uIkaab-UI4Z5efQ-36M7nleQm3LRdkNmkm2IFUD7joKBBh4OBixTYUuvoaU_t149RTmHVuZy3YTHuEkws1qy_BHJcWxnzHADc2QXqFxH5dDVv4TOj1plvTGYpm1WTDeno7aSKUrOpmJM_43r2RBq_5S4Q0HcchAk4IQ30KSnGuER2YAWVfgs6oS9bn6oZ0 Fri, 10-Mar-2023 09:12:16 GMT .google.com / No No Received LSID s.HK|s.youtube:DQAAAL0AAAC6cFNUd1JYEXyvGUTS5bi0nElYaa537CD6_-PaH2wcsVjyV5_bUmHe-8F4p5hluJ_2F8uw05C342LhqK_u0iKDAz9X47broRRC7pWkGUXYE20cK3yJsfo6H6zVOTU7YjKVoyfJYQyv825ge4C60JYm5s30YsTyFlwzu55NQnI3kdv1_pBY2PwPJcEpoPnhJo3byA9ZTcx-MOmYWpLzWuffKzSZE1lUe4grcQRIiagND3z361_xCVb4Yj9P1_qRsq0 Fri, 10-Mar-2023 09:12:16 GMT / Yes Yes
post数据,和上面已经列出来的竟然一样。
(5)再去:
cookie为:
Direction Key Value Expires Domain Path Secure HTTP only Sent GAPS 1:SGeom2azC49iiigX9DUio3VJ6B6IJw:eDt62AqIUjUy2zHg Sent GAPS 1:SGeom2azC49iiigX9DUio3VJ6B6IJw:eDt62AqIUjUy2zHg Sent GoogleAccountsLocale_session en Sent NID 67=uKGQYf4LRq2bC34tVSeraLXVTszv8qQ8Ten3tp3v51kkZd1c-tdxgPT7H1gY5Ok7ICHj1n9GPvkEOmG15s3etVVeNa3mb-ZbwcZe6koXfDhyXwgMS_xONpZpH0F2RThU Sent PREF ID=c8e5fc96ddb70edd:U=695e28e9ddfa15ac:FF=1:LD=en:NW=1:TM=1349920742:LM=1363079516:SG=1:S=kKC4jvadyFHqLEva Received SID DQAAALsAAAA_a0BLm4YsqKSfOebqXPJnSq69aBpOTfR6dQrMM9Wi_bGGxnp0dhES9sESJo7rhwsJIvQ8TCBxVqTeVLGHK_-liA_odpRism2S3KSKv9lDCHYDxPnY_w_EoTvl5o-NVd3wUEQIMHFR524jE2ebiCOta00-bGlMn96yNBrACGQlljYH3RSRIr4zOFH9x-g03Y9UiIbXk4vC67caLFRzjqRU8v9mK-xI0UMMlhJb5yWhNjrAodyZwArmch0Kdvm6hOQ Fri, 10-Mar-2023 09:12:17 GMT .google.com.hk / No No Received NID 67=lTjM3YN7Im5m22xnfHQnj-9zFmEeEI0EHKR-mb7WR-VEYKsjRa9NvKPSH7lGOy1e8IcgeDNOgxvl1dzYggaxmrN7FpmiftZGFifApXLH9MAFbhIzhCOmSSQFPWFioaQCWdnBBlbssXN65i9u3X56Vfj5-C8lHfgBr-mBGJHSW32hduyZIVwiCC1j510lHxoZUdoZ45QqNNBMhoM Wed, 11-Sep-2013 09:12:17 GMT .google.com.hk / No Yes Received HSID ANfNUPxSAas6psRjW Fri, 10-Mar-2023 09:12:17 GMT .google.com.hk / No Yes Received SSID ACvqUOTWrsVCYYV8w Fri, 10-Mar-2023 09:12:17 GMT .google.com.hk / Yes Yes Received APISID fuZjiKg_OXx2clqs/ANmmBDFqw4lK4_BQM Fri, 10-Mar-2023 09:12:17 GMT .google.com.hk / No No Received SAPISID qxGncn6r5LqaBBbS/AQ4kCCpKZvvtr5VaU Fri, 10-Mar-2023 09:12:17 GMT .google.com.hk / Yes No
(6)最后才返回来:
| https://www.google.com.hk/ | 
对应的cookie是:
Direction Key Value Expires Domain Path Secure HTTP only Sent GoogleAccountsLocale_session en Sent NID 67=uKGQYf4LRq2bC34tVSeraLXVTszv8qQ8Ten3tp3v51kkZd1c-tdxgPT7H1gY5Ok7ICHj1n9GPvkEOmG15s3etVVeNa3mb-ZbwcZe6koXfDhyXwgMS_xONpZpH0F2RThU Sent PREF ID=c8e5fc96ddb70edd:U=695e28e9ddfa15ac:FF=1:LD=en:NW=1:TM=1349920742:LM=1363079516:SG=1:S=kKC4jvadyFHqLEva Sent GoogleAccountsLocale_session en Sent NID 67=uKGQYf4LRq2bC34tVSeraLXVTszv8qQ8Ten3tp3v51kkZd1c-tdxgPT7H1gY5Ok7ICHj1n9GPvkEOmG15s3etVVeNa3mb-ZbwcZe6koXfDhyXwgMS_xONpZpH0F2RThU Sent PREF ID=c8e5fc96ddb70edd:U=695e28e9ddfa15ac:FF=1:LD=en:NW=1:TM=1349920742:LM=1363079516:SG=1:S=kKC4jvadyFHqLEva Sent NID 67=lTjM3YN7Im5m22xnfHQnj-9zFmEeEI0EHKR-mb7WR-VEYKsjRa9NvKPSH7lGOy1e8IcgeDNOgxvl1dzYggaxmrN7FpmiftZGFifApXLH9MAFbhIzhCOmSSQFPWFioaQCWdnBBlbssXN65i9u3X56Vfj5-C8lHfgBr-mBGJHSW32hduyZIVwiCC1j510lHxoZUdoZ45QqNNBMhoM Sent PREF ID=c8e5fc96ddb70edd:U=695e28e9ddfa15ac:FF=1:LD=en:NW=1:TM=1349920742:LM=1363079516:SG=1:S=kKC4jvadyFHqLEva Sent SID DQAAALsAAAA_a0BLm4YsqKSfOebqXPJnSq69aBpOTfR6dQrMM9Wi_bGGxnp0dhES9sESJo7rhwsJIvQ8TCBxVqTeVLGHK_-liA_odpRism2S3KSKv9lDCHYDxPnY_w_EoTvl5o-NVd3wUEQIMHFR524jE2ebiCOta00-bGlMn96yNBrACGQlljYH3RSRIr4zOFH9x-g03Y9UiIbXk4vC67caLFRzjqRU8v9mK-xI0UMMlhJb5yWhNjrAodyZwArmch0Kdvm6hOQ Sent HSID ANfNUPxSAas6psRjW Sent SSID ACvqUOTWrsVCYYV8w Sent APISID fuZjiKg_OXx2clqs/ANmmBDFqw4lK4_BQM Sent SAPISID qxGncn6r5LqaBBbS/AQ4kCCpKZvvtr5VaU Received PREF ID=c8e5fc96ddb70edd:U=695e28e9ddfa15ac:FF=2:LR=lang_zh-TW|lang_zh-CN|lang_en:LD=en:NR=10:NW=1:TM=1349920742:LM=1363079537:SG=3:S=c4qflcivk6szzSrt Thu, 12-Mar-2015 09:12:17 GMT .google.com.hk / No No Received NID 67=C8AdK9hZ6L9FICJdSM7R8ag3cv1FGAfFOCLEpKTmyDK_eOw0yBlopm3Ck-B_6md7Awj_NqKMOfgTSFdf4fwnfKyHYinaMsn88RdoDOVkuPdBO1W_g7vdrvYoqZ6qi0PIZfp5qXuvu--EAm703HAtIDyuOiQvRmC7QF5CZ09rkXFidtyFIwV5DhyaNd-zeixtqb79KP73dCOTFBg Wed, 11-Sep-2013 09:12:17 GMT .google.com.hk / No Yes
然后才可以看到对应的html,和开始的是类似的:
<!doctype html><html itemscope="itemscope" itemtype="http://schema.org/WebPage"><head><meta http-equiv="X-UA-Compatible"
这样,才算登陆完毕。
3.最后,模拟登陆部分代码如下:
//step1: https://www.google.com/
string googleMainUrl = "https://www.google.com/";
HttpWebResponse mainResp = crifanLib.getUrlResponse(googleMainUrl);
//string mainRespHtml = crifanLib.getUrlRespHtml(googleMainUrl);
//step2: https://accounts.google.com/ServiceLogin?hl=en&continue=https://www.google.com.hk/
string serviceLoginUrl = "https://accounts.google.com/ServiceLogin?hl=en&continue=https://www.google.com.hk/";
string serviceLoginRespHtml = crifanLib.getUrlRespHtml(serviceLoginUrl);
//HttpWebResponse serviceLoginResp = crifanLib.getUrlResponse(serviceLoginUrl);
//(1)dsh
//  name="dsh" id="dsh" value="1076687533918353426"
//name="dsh" id="dsh" value="-8920038051690744319"
string dshValue = "";
if(crifanLib.extractSingleStr(@"name=""dsh""\s+id=""dsh""\s+value=""([\-\d]+)""", serviceLoginRespHtml, out dshValue))
{
}
//(2)
//<input type="hidden"
//       name="GALX"
//       value="goIJDxmIBok">
string galxValue = "";
if (crifanLib.extractSingleStr(@"name=""GALX""\s+value=""(\w+)""", serviceLoginRespHtml, out galxValue))
{
}
//step3: https://accounts.google.com/ServiceLoginAuth
/*
    continue=https%3A%2F%2Fwww.google.com.hk%2F
    dsh=-8258142449249395731
    hl=en
    GALX=JeKuKwpO1kM
    pstMsg=1
    dnConn=
    checkConnection=youtube%3A449%3A0
    checkedDomains=youtube
    timeStmp=
    secTok=
    _utf8=%E2%98%83
    bgresponse=%21A0JshyAfjVtBxUQkh0XxQTU7YQIAAAAeUgAAAAYqAObFsjS5wKDdydyQQLZNu1DZ8VbDsE2l0n72Pki8ePly6msM6-zQgAfxxjiVEPBCBjM--g5vMOErerxreRx10V98U_2enOTLD6hJGdVUadehwIUs9NqlFE5Buq5sijWUfYVvjBVqPHjXfv7nsr518MKHIAlTy5OoU71WWcZYPe1h9nZE4teiMPCbQHCSCxFwIkc0v8kHwpg5esRfGuaKH8i5NH28spLdWpXXopgaqm_WDoKbUmPZYJanTUhe8VX8afHZhBpEXT6VmooANFq6EaMYr5_UcLBgJfUH8An67VIESjSGN0HPKQ
    Email=xxx@gmail.com
    Passwd=xxxxxxxxxxxxxxxx
    signIn=Sign+in
    PersistentCookie=yes
    rmShown=1
 */
Dictionary<string, string> headerDict = new Dictionary<string, string>();
headerDict.Add("Referer", serviceLoginUrl);
headerDict.Add("AllowAutoRedirect", "false"); //disable auto direct to "collect" intermediate cookies, for latter use
Dictionary<string, string> postDict = new Dictionary<string, string>();
postDict.Add("continue", "https://www.google.com.hk/");
postDict.Add("dsh", dshValue);
postDict.Add("hl", "en");
postDict.Add("GALX", galxValue);
postDict.Add("Email", txbEmail.Text);
postDict.Add("Passwd", txbPassword.Text);
postDict.Add("signIn", "Sign+in");
postDict.Add("PersistentCookie", "yes");
string loginGoogleUrl = "https://accounts.google.com/ServiceLoginAuth";
//songInfo.realAddr = crifanLib.getUrlRespHtml(loginGoogleUrl, headerDict, stHtmlCharset, postDict);    
//string loginRespHtml = crifanLib.getUrlRespHtml(loginGoogleUrl, headerDict, postDict);
HttpWebResponse loginResp = crifanLib.getUrlResponse(loginGoogleUrl, headerDict, postDict);
//step 4:
//https://accounts.google.com/CheckCookie?continue=http%3A%2F%2Fwww.google.com.hk%2F&hl=en&chtml=LoginDoneHtml&checkedDomains=youtube&pstMsg=1
string checkCookieUrl = loginResp.Headers["Location"].ToString();
headerDict = new Dictionary<string, string>();
headerDict.Add("Referer", serviceLoginUrl);
headerDict.Add("AllowAutoRedirect", "false"); //disable auto direct to get follow SetSID url           
HttpWebResponse checkCookieResp = crifanLib.getUrlResponse(checkCookieUrl, headerDict);
//step5:
string setSidUrl = checkCookieResp.Headers["Location"].ToString();
//https://accounts.google.com.hk/accounts/SetSID?ssdc=1&sidt=ALWU2cvJkixPgxsSKW%2FcQGNuwdI6xSYJ6vDOlR%2FIQTZ%2BYFdgoHfCMHhwtirBMvOdf1%2FheS3W40l8zXqDbNva9ncceD%2BWMYOMmlJulirhNmdXC9DzTO5VSAaiwJfIeE9yvVeWHcjtCi5bPKlhufDt6R0ZDwmVYnYW39ysHwAw0b7cMlx5lCI3guMWukWhnPwgnCO7eDfJ6wvdgGnaPYtdRCrzL%2FY8chelqeyzp%2BKsMv97hrF7mmzwnf9BgdIF29MMJHYWCvBfI6VPZ0iRjR4KqwZrqkug9BRsE0lcGkgI2Qi1OjB0aS3wJIj1d4J589t6BVWqnT%2BsN1fu3VYS%2B6U6l5J6j0vFqkT%2BBwLcvYmjf%2FwnoU19GnT09bWOAS8RsotBnV6sYoysna85&continue=http%3A%2F%2Fwww.google.com.hk%2F
headerDict = new Dictionary<string, string>();
headerDict.Add("Referer", serviceLoginUrl);
headerDict.Add("AllowAutoRedirect", "false"); //disable auto direct to get follow SetSID url
string setSidHtml = crifanLib.getUrlRespHtml(setSidUrl, headerDict);
//location.replace("http://www.google.com.hk/")
string redirectUrl = "";
if (crifanLib.extractSingleStr(@"location\.replace\(""(http.+?)""\)", setSidHtml, out redirectUrl))
{
}
//The document has moved <A HREF="https://www.google.com.hk/">here</A>
else if (crifanLib.extractSingleStr(@"A\s+HREF=""(http.+?)""", setSidHtml, out redirectUrl))
{ 
}
//step6:
//redirecting to :
//http://www.google.com.hk/
string realMainHtml = crifanLib.getUrlRespHtml(redirectUrl);
//search resp html, check whether contain the user email
//to see wheter login ok
Match found = new Regex(txbEmail.Text).Match(realMainHtml);
if (found.Success)
{
    MessageBox.Show("Login OK");
}
else
{
    MessageBox.Show("Login failed!");
}注:
1. 相关的crifanLib的库,详见:
crifanLib – crifan’s Library(C#/Python/PHP/C/…)
2.此过程,正常的情况下,是正常的,可以模拟登陆的。
在调试期间,偶尔,好像是google服务器端异常,还是C#的http库异常,会导致:
string setSidUrl = checkCookieResp.Headers["Location"].ToString();
中response中的Headers中,没有Location,所以会报错。
其根本原因,暂未知。只是发现偶尔会出现此问题。
转载请注明:在路上 » 【记录】模拟登陆google

