模擬無驗證碼的登陸
模擬網(wǎng)站http://bbs.chinaunix.net/member.php?mod=logging&action=login&logsubmit=yes
瀏覽器:chrome
1.按F12,輸入個人賬號密碼,點擊登陸(點擊登陸前建議把列表清空),找到下面代碼里面字典header數(shù)據(jù)
2.png
2.點擊登陸,頁面跳轉(zhuǎn),點擊暫停,在fox里面找到post屬性的一欄,找到下面代碼里面字典post數(shù)據(jù)
1.png
3.代碼如下:
#!/usr/bin/env python
# coding: utf-8
import requests
from bs4 import BeautifulSoup
posturl = 'http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LJDfJ'#提交的帶用戶名密碼的posturl
hosturl = 'http://bbs.chinaunix.net/member.php?mod=logging&action=login&logsubmit=yes'#登陸頁面的代碼
post = { 'formhash':'f38f81ed',
'referer':'http%3A%2F%2Fbbs.chinaunix.net%2F',
'username':u'西歪誒'.encode('gbk'),
'password':'AN87422006',
'loginsubmit':'true',
'return_type':''
}
header = { 'Upgrade-Insecure-Requests':'1',
'Host':'bbs.chinaunix.net',
'Referer':'http://bbs.chinaunix.net/member.php?mod=logging&action=logout&formhash=a1b12b75',
'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
header_session = requests.Session()#使用seesion登錄,這樣的好處是可以在接下來的訪問中可以保留登錄信息
header_session.post(hosturl, data = post, headers = header)#登錄hosturl
login_page = header_session.get(posturl, headers = header).content#requests的session登錄,以post方式,參數(shù)分別為posturl、headers
f = open('china.html', 'w')
f.write(login_page)
f.close()#打開china.html文件,可以發(fā)現(xiàn)已經(jīng)登陸進去
4.打開china.html,得到如圖所示的結(jié)果:
3.png
登陸成功!