Python瞎老弟的爬虫心得之requests篇④爬虫实现4399登录

如果你还没学会使用requests模块,请参考本教程的2-2期
如果你还不知道如何使用cookie,请参考本教程的2-3期

本期打算利用上2期学到的内容,实现一个简单的4399的登录,并通过登录内容获取信息

4399的个人中心地址:

https://u.4399.com/profile/

首先,如果没有登录,直接访问

import requests

url = "https://u.4399.com/profile/"

headers = {"user-agent": "xialaodi"}

r = requests.get(url, headers=headers)

print(r.text)

获得了如下关键提示

<p class="regtip">还不是4399用户?现在免费注册4399用户,便能立即体验新潮、好玩的游戏哦!</p>

现在我们开始登录

import requests

url1 = "https://ptlogin.4399.com/ptlogin/login.do"
url2 = "https://u.4399.com/profile/"

headers = {"user-agent": "xialaodi"}

data = {"username": "xialaodi", "password": "123456"}

with requests.Session() as s:
    s.headers.update(headers)
    r1 = s.post(url1, data=data)
    print(r1.status_code)
    print(r1.text)
    r2 = s.get(url2)
    print(r2.status_code)
    print(r2.text)

不出所料,一切顺利,得到了我们希望得到的关键信息

<td class="label">昵称 :</td>
<td class="input">瞎老弟</td>

<td class="label">邮箱 :</td>
<td class="input">1413274264@qq.com</td>

<td class="label">QQ :</td>
<td class="input">1413274264</td>

注意,以上代码不应直接复制运行,在data之中,应该替换为你自己的4399账号和密码,如果没有,可以先注册一个(注册无需手机号,很适合大家进行尝试,这也是本期为何选择4399的原因),然后再运行代码进行尝试

如果不想使用Session会话对象,我们也可以通过手动添加cookie的方式,改动后的代码如下

import requests

url1 = "https://ptlogin.4399.com/ptlogin/login.do"
url2 = "https://u.4399.com/profile/"

headers = {"user-agent": "xialaodi"}

data = {"username": "xialaodi", "password": "123456"}

r1 = requests.post(url1, headers=headers, data=data)
cookies = r1.cookies
r2 = requests.get(url2, headers=headers, cookies=cookies)
print("另外一种登录方式")
print(r2.text)

感兴趣的读者也可以更进一步,尝试如何使用requests注册4399账号

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容