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 |
格式化一下,方便看清楚:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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.结果发现,使用简单的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | /* 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" ); //songInfo.realAddr = crifanLib.getUrlRespHtml(loginGoogleUrl, headerDict, stHtmlCharset, postDict); string loginRespHtml = crifanLib.getUrlRespHtml(loginGoogleUrl, null , postDict); |
是无法正常登陆的。
4.所以还需要另外从头到尾的搞清楚,google 是如何登陆的。
目前看来是:
(1)先访问:
https://www.google.com.hk/ |
相关的cookie为:
1 2 3 4 | 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为:
1 2 3 4 5 6 7 8 | 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为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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为:
1 2 3 4 5 6 7 8 9 10 11 12 | 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是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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,和开始的是类似的:
1 | <!doctype html><html itemscope= "itemscope" itemtype= "http://schema.org/WebPage" ><head><meta http-equiv= "X-UA-Compatible" |
这样,才算登陆完毕。
3.最后,模拟登陆部分代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | //step1: https://www.google.com/ HttpWebResponse mainResp = crifanLib.getUrlResponse(googleMainUrl); //string mainRespHtml = crifanLib.getUrlRespHtml(googleMainUrl); 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)) { } /* 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( "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" ); //songInfo.realAddr = crifanLib.getUrlRespHtml(loginGoogleUrl, headerDict, stHtmlCharset, postDict); //string loginRespHtml = crifanLib.getUrlRespHtml(loginGoogleUrl, headerDict, postDict); HttpWebResponse loginResp = crifanLib.getUrlResponse(loginGoogleUrl, headerDict, postDict); //step 4: 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(); 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 : 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库异常,会导致:
1 | string setSidUrl = checkCookieResp.Headers[ "Location" ].ToString(); |
中response中的Headers中,没有Location,所以会报错。
其根本原因,暂未知。只是发现偶尔会出现此问题。
转载请注明:在路上 » 【记录】模拟登陆google