python脚本自动qq签到_Python爬虫实现自动登录、签到功能 附代码

99e1cf10-1e5c-4d97-98f3-2bff829fadf8.gif

这篇文章主要介绍了Python爬虫实现自动登录、签到功能的代码,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

前几天在一个素材网站上下载东西,积分总是不够用,积分是怎么来的呢,是每天登录网站签到获得的,当然也能购买,不想去买,因为偶尔才会用一次,但是每到用的时候就发现积分不够,又记不得每天去签到,所以就有了这个纠结的事情。怎么办呢,想办法呗,于是我就用python写了个小爬虫,每天去自动帮她签到挣积分。废话不多说,下面就讲讲代码。

我这里用的是python3.4,使用python2.x的朋友如果有需要请绕道查看别的文章。

工具:Fiddler

首先下载安装Fiddler,这个工具是用来监听网络请求,有助于你分析请求链接和参数。

打开目标网站:http://www.17sucai.com/,然后点击登录

65ca6a17-28d8-42bd-ba61-429936c73af1.png

好了,先别急着登录,打开你的Fiddler,此时Fiddler里面是没有监听到网络请求的,然后回到页面,输入邮箱和密码,点击登录,下面再到fiddler里面去看

ce7ade1e-0616-4e29-9bd2-ec5a46ba1c55.png

这里面的第一个请求就是你点击登录的网络请求,点击这个链接可以在右边看到你的一些请求信息

36ab8a83-4bc3-4141-9000-cf6395b04cfe.png

然后点击WebForms可以看到你的请求参数,也就是用户名和密码

ae3bc18a-e35f-460e-9213-ffcb89630740.png

e4659482-9c0b-44b0-91bf-c34b85f159aa.png

下面我们有代码来实现登录功能

importurllib.request

importurllib

importgzip

importhttp.cookiejar

#定义一个方法用于生成请求头信息,处理cookie

defgetOpener(head):

# deal with the Cookies

cj=http.cookiejar.CookieJar()

pro=urllib.request.HTTPCookieProcessor(cj)

opener=urllib.request.build_opener(pro)

header=[]

forkey,valueinhead.items():

elem=(key,value)

header.append(elem)

opener.addheaders=header

returnopener

#定义一个方法来解压返回信息

defungzip(data):

try:# 尝试解压

print('正在解压.....')

data=gzip.decompress(data)

print('解压完毕!')

except:

print('未经压缩, 无需解压')

returndata

#封装头信息,伪装成浏览器

header={

'Connection':'Keep-Alive',

'Accept-Language':'zh-CN,zh;q=0.8',

'Accept':'application/json, text/javascript, */*; q=0.01',

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',

'Accept-Encoding':'gzip, deflate',

'X-Requested-With':'XMLHttpRequest',

'Host':'www.17sucai.com',

}

url='http://www.17sucai.com/auth'

opener=getOpener(header)

id='xxxxxxxxxxxxx'#你的用户名

password='xxxxxxx'#你的密码

postDict={

'email':id,

'password':password,

}

postData=urllib.parse.urlencode(postDict).encode()

op=opener.open(url,postData)

data=op.read()

data=ungzip(data)

print(data)

好了,接下来清空一下你的Fiddler,然后运行这个程序,看一下你的Fiddler

81bb636e-d41d-408d-9063-eefb36ba1b88.png

你可以点击这个链接,看看右边的请求信息和你用浏览器请求的是不是一样

下面是程序后代打印的信息

3a3f4856-0276-453e-9a43-8125058ffbb5.pngcode=200表示登陆成功

code=200表示登陆成功

解析来就需要获取到签到的url,这里你需要一个没有签到的账号在网站中点击签到按钮,然后通过Fiddler来获取到签到的链接和需要的信息。

2ee3502c-954e-46ef-9a38-5c0dc56d6f79.png

然后点击“签到”,签到成功后到Fiddler中查看捕捉到的url

70e3c35a-cdc8-4468-bea0-fdec0fd95e3b.png

点击这个url可以在右边查看访问这个链接时所需要的头信息和cookies神马的,我们已经登录成功后直接使用cookies就行了,python对cookies的处理做好了封装,下面是我的代码中对cookies的使用

cj=http.cookiejar.CookieJar()

pro=urllib.request.HTTPCookieProcessor(cj)

opener=urllib.request.build_opener(pro)

下面是签到成功返回的信息:code=200表示请求成功,day=1表示连续签到一天,score=20表示获得的积分数

23527706-de49-4e38-8572-472171234ee1.png

下面放出完整代码,当然,为了测试代码签到,你还需要你一没有签到过的账号

importurllib.request

importurllib

importgzip

importhttp.cookiejar

defgetOpener(head):

# deal with the Cookies

cj=http.cookiejar.CookieJar()

pro=urllib.request.HTTPCookieProcessor(cj)

opener=urllib.request.build_opener(pro)

header=[]

forkey,valueinhead.items():

elem=(key,value)

header.append(elem)

opener.addheaders=header

returnopener

defungzip(data):

try:# 尝试解压

print('正在解压.....')

data=gzip.decompress(data)

print('解压完毕!')

except:

print('未经压缩, 无需解压')

returndata

header={

'Connection':'Keep-Alive',

'Accept-Language':'zh-CN,zh;q=0.8',

'Accept':'application/json, text/javascript, */*; q=0.01',

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',

'Accept-Encoding':'gzip, deflate',

'X-Requested-With':'XMLHttpRequest',

'Host':'www.17sucai.com',

}

url='http://www.17sucai.com/auth'

opener=getOpener(header)

id='xxxxxxx'

password='xxxxxxx'

postDict={

'email':id,

'password':password,

}

postData=urllib.parse.urlencode(postDict).encode()

op=opener.open(url,postData)

data=op.read()

data=ungzip(data)

print(data)

url='http://www.17sucai.com/member/signin'#签到的地址

op=opener.open(url)

data=op.read()

data=ungzip(data)

print(data)

相比登录,签到也就是在登录完成后重新打开一个链接而已,由于我的账号都已经签到过了,这里就不在贴运行代码的图 了。

接下来要做的就是在你电脑上写个bat 脚本,再在“任务计划”中添加一个定时任务就行了。

7fd8a5b4-abce-4ab1-ba1c-72198dfeb65a.png

在此之前你还需要配置一下python的环境变量,这里就不在赘述了。

91256c77-4f99-443d-a833-420544b4f6d9.png

到此这篇关于Python爬虫实现自动登录、签到功能的代码的文章就介绍到这了

-------------------End-------------------

扫下方二维码加老师微信或是搜索老师微信号:XTUOL1988【备注学习Python】领取Python web开发,Python爬虫,Python数据分析,人工智能等学习教程。带你从零基础系统性的学好Python!也可以加老师建的Python技术学习教程qq裙:245345507,二者加一个就可以!

205a18ba-28e7-4b6d-aa28-912a232eaa65.jpg

ccba9797-3857-4692-ba7d-0f47e6238bcc.png

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

万水千山总是情,点个【在看】行不行

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

/今日留言主题/

随便说一两句吧~

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值