Python模拟登陆网站很简单,但是对于网站信息的爬取很重要,这是最基本的功能。
对于Python来说使用自带的urllib可以解决问题,但是我们希望能有更简洁的方法,因为它还是太复杂。
首先我们需要安装requests第三方库,这里使用pip安装(就像使用apt-get一样方便,关于如何安装pip,请点击
如何安装pip)
sudo -H python3 -m pip install Requests
安装之后代码就比较简洁了
import requests
def isEmpty(params_str):
if(params_str is None):
return True
if(len(params_str) == 0):
return True
return False
session = requests.Session()
login_name = str(input('Please input your username:'))
if(isEmpty(login_name)):
print('username can not be null or empty')
login_pass = str(input('Please input your password:'))
if(isEmpty(login_pass)):
print('password can not be null or empty')
url = 'https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn'
params = {'username':login_name, 'password':login_pass}
s = session.post(url, params)
print(s.cookies.get_dict())
这里使用的测试网站就是csdn的登陆页面,之所以使用它是因为它比较简单,但是我必须申明使用以上代码恶意访问和攻击csdn网站跟本人无关,代码仅供学习使用
最后不得不吐嘈一下,访问了这么多次都不需要输入验证码。