专栏首页python学习教程Python爬虫实现自动登录、签到功能 附代码

Python爬虫实现自动登录、签到功能 附代码

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

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

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

工具:Fiddler

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

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

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

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

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

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

import urllib.requestimport urllibimport gzipimport http.cookiejar#定义一个方法用于生成请求头信息,处理cookiedef getOpener(head):# deal with the Cookies<pre name="code" class="python"> cj = http.cookiejar.CookieJar()pro = urllib.request.HTTPCookieProcessor(cj)opener = urllib.request.build_opener(pro)header = []for key, value in head.items():elem = (key, value)header.append(elem)opener.addheaders = headerreturn opener#定义一个方法来解压返回信息def ungzip(data):try: # 尝试解压print('正在解压.....')data = gzip.decompress(data)print('解压完毕!')except:print('未经压缩, 无需解压')return data#封装头信息,伪装成浏览器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

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

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

code=200表示登陆成功

code=200表示登陆成功

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

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

点击这个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表示获得的积分数

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

import urllib.requestimport urllibimport gzipimport http.cookiejardef getOpener(head):# deal with the Cookiescj = http.cookiejar.CookieJar()pro = urllib.request.HTTPCookieProcessor(cj)opener = urllib.request.build_opener(pro)header = []for key, value in head.items():elem = (key, value)header.append(elem)opener.addheaders = headerreturn openerdef ungzip(data):try: # 尝试解压print('正在解压.....')data = gzip.decompress(data)print('解压完毕!')except:print('未经压缩, 无需解压')return dataheader = {'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 脚本,再在“任务计划”中添加一个定时任务就行了。

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

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

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

本文分享自微信公众号 - python教程(pythonjc),作者:小雨

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学python是自学好还是去培训机构?这个问题应该这样分析

    因为目前python非常火,应用非常的广泛,是目前最火的行业之一,竞争很大,工资很高,未来发展也极好。

    python学习教程
  • 利用Python批量下载自己喜欢听得音乐

    文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

    python学习教程
  • 0基础学Python从哪入手?3个月快速学会Python的秘诀是什么?

    题主如果想要利用python爬取数据资料,本人目前也正在学习Python网络爬虫,我就从爬虫谈谈python的学习。

    python学习教程
  • 【网络】cookies的妙用

    答:看个人,我尽可能的用小白的角度去写这篇文章,如果看不懂,那就多读几遍,还是不懂的话,就别玩这个了,耐心的手动签到吧

    zby1101
  • 华为oj之质数因子

    功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )

    Enjoy233
  • Java(9):浅谈WebCollector的数据抓取

    作为Java世界中小白的我(瑟瑟发抖的状态),在网络数据抓取这一块简直是一无所知.天无绝人之路,这时候我们老大向我推荐一个很好用的爬虫框架WebCollecto...

    平凡的学生族
  • Windows10右键添加“在此处打开命令窗口”

    landv
  • 恕我直言,你连 Github 都不会用!

    | 链接:www.cnblogs.com/suwanbin/p/12113751.html

    一个优秀的废人
  • GitHub 搜索骚技巧,太好用了!

    作者:Suwanbin 链接:www.cnblogs.com/suwanbin/p/12113751.html

    用户6543014
  • 双节祝福模板上线、直播新增强制签到,快来体验新特性!

    ? 十一假期即将到来,每个节假日到来前,各个公司的乐享社区一定非常活跃。为了满足更多需求,腾讯乐享又更新了一批新功能! 乐乐带你一起看看这次更新的3个直播特性...

    腾讯乐享

扫码关注云+社区

领取腾讯云代金券