python爬虫学习,使用requests库来实现模拟登录4399小游戏网站。

news/2024/7/19 12:33:09 标签: python, 游戏, 爬虫

 

1.首先分析请求,打开4399网站。

右键检查元素或者F12打开开发者工具。然后找到network选项,

这里最好勾选perserve log 选项,用来保存请求日志。这时我们来先用我们的账号密码登陆一下,然后查看一下截获的请求

可以很清楚的看到这里有个login,而且这个请求是post请求,下拉查看一下Form data,也就是表单数据

可以很清楚的看到我们的刚才登录发送给服务器的表单数据,更重要的是,除了uername和password之外,所有的数据都是一成不变的,这意味着我们不需要解析网页的源码获得信息,只需要把用户名和密码提交上去就行,下面开始构建我们的代码。

 1 import requests
 2 #模拟登陆4399  成功  一定要灵活运用session()这个好东西
 3 #这是我们要提交的表单
 4 data={
 5     'loginFrom':'uframe',
 6     'postLoginHandler':'default',
 7     'layoutSelfAdapting':'true',
 8     'externalLogin':'qq',
 9     'displayMode':'popup',
10     'layout':'vertical',
11     'appId':'www_home',
12     'mainDivId':'popup_login_div',
13     'includeFcmInfo':'false',
14     'userNameLabel':'4399用户名',
15     'userNameTip':'请输入4399用户名',
16     'welcomeTip':'欢迎回到4399',
17     'username':'1252452801125',
18     'password':'1252452801'
19 }
20 headers={
21     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
22 }
23 url='http://ptlogin.4399.com/ptlogin/login.do?v=1'
24 session=requests.Session()
25 res=session.post(url=url,data=data,headers=headers) 
26 res2=session.get(url='http://u.4399.com/user/info',headers=headers) #成功登陆以后,查看我们的用户数据
27 #这里把我们的请求结果保存到文件
28 f=open('4399.html','wb')
29 f.write(res2.content)
30 f.close()

 

 运行起来,然后查看我们保存的html文件,

模拟登录成功! 这就是我们个人用户信息的源代码。

这个例子主要讲了requests 的post方法,用于post请求,还有很重要的session,用于维持会话,希望这个例子对大家能有所帮助,谢谢,

个人QQ:1252452801

 

转载于:https://www.cnblogs.com/williamsjay/p/10832841.html


http://www.niftyadmin.cn/n/1187305.html

相关文章

@Value()读取配置文件属性,读出值为null的问题

一、问题描述 自定义一个Filter如下: Component public class JwtFilter extends GenericFilterBean{Value("${jwt.header}")private String header; //此处无法注入 值为 null 在config中将此filter注册给springConfiguration AutoConfigureAfter(JwtFi…

Hackertarget:一款发现攻击面的工具

前言 https://github.com/ismailtasdelen/hackertarget 代码 主要通过这家公司提供的API查询相关数据实现的功能,API看起来可以用很久。 #!/usr/bin/env python # -*- coding: utf-8 -*-import requestshackertarget_logo """_ _ …

树的相关术语

定义树(Tree):是n(n≥0)个结点的有限集。定义一:(递归定义):①在任意一棵非空树中,有且仅有一个特定的称为根(root)的结点&#xff1b…

ubuntu中安装好anaconda之后,系统终端界面前面出现(base)字样

## 永久取消base字样办法: 1、在新终端中输入:gedit ~/.bashrc 2、在打开的文件最后加上一句命令:conda deactivate 3、重新打开终端即可消除base字样。 转载于:https://www.cnblogs.com/Tdazheng/p/10843053.html

cin的用法

cin is a extern istream object。提供了很多可用的成员函数和重载的操作符&#xff0c;如&#xff1a;cin<<, cin.get(), cin.getline()等。下面我们来了解一下这几个函数&#xff1a; 一. cin>> 该操作符是根据后面变量的类型读取数据。 输入结束条件 &…

MLS(移动最小二乘)

https://blog.csdn.net/weixin_41484240/article/details/81204113 https://blog.csdn.net/baidu_38127162/article/details/82380914 https://blog.csdn.net/u013541523/article/details/80828965转载于:https://www.cnblogs.com/urcaptain/p/10843564.html

C++文件操作详解(ifstream、ofstream、fstream)

C文件操作详解&#xff08;ifstream、ofstream、fstream&#xff09; C 通过以下几个类支持文件的输入输出&#xff1a; ofstream: 写操作&#xff08;输出&#xff09;的文件类 (由ostream引申而来) ifstream: 读操作&#xff08;输入&#xff09;的文件类(由istream引…

全局配置cnpm淘宝镜像

node是一个非常好用的项目管理工具 但这是一个国外的工具 我们直接执行npm命令因为是用的国外的镜像 会比较慢 那么 我们就可以用cnpm来处理 但前提是你要搭建好环境 我们先打开终端 安装 淘宝镜像 输入 npm install -g cnpm --registryhttps://registry.npm.taobao.org然后 n…