如何登錄csdn

csdn一直是我比較討厭的網站之一,總感覺它是想寧可錯殺一千,絕不放過一個。爬蟲抓取,遠程登錄等等都設置了很多障礙。

csdn登錄的時候會發過來一個webflow號碼,登錄的時候需要一起發回去。這個其實很簡單,先對網站發送一個get請求,從返回來的頁面中抓到該號碼,然後返回去就可以了。



execution是什麼還不清楚,但是也是可以抓到的。先發送一個get請求。

 self.request = requests.get(self.url, cookies=self.jar)

url就是csdn的登錄網址,jar是個空cookie。得到內容截取:

<input type="hidden" name="lt" value="LT-23849645-aEV2DOFVYC4xENCIetgAIyaKgT9Siq" />
<input type="hidden" name="execution" value="e4s1" /> 
<input type="hidden" name="_eventId" value="submit" /> 
<input class="logging" accesskey="l" value="登 錄" tabindex="5" type="button" /> 


發現name屬性是獨一無二的,直接抓取出來就可以了。

self.webflow = self.parse.xpath('//input[@name="lt"]/@value')
self.execution = self.parse.xpath('//input[@name="execution"]/@value')
然後把這兩個字段添加到字典中去:

self.pwd["lt"] = self.webflow[0]
self.pwd["execution"] = self.execution[0]
然後就一起發出去就可以了。

self.request = requests.post(self.url, headers=self.header, cookies=self.request.cookies, data=self.pwd)
現在就已經可以登錄csdn了。

源代碼:https://github.com/gt11799/login_with_webflow

————————————————————

github主頁:https://github.com/gt11799 

E-mail:[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章