`
uule
  • 浏览: 6323865 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

[python实例] 爬虫实现自动登录、签到

 
阅读更多

来源:http://blog.csdn.net/u283056051/article/details/49946981

 

 更新 2016/8/9:最近发现目标网站已经屏蔽了这个登录签到的接口(PS:不过我还是用这个方式赚到了将近一万点积分·····)

 

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

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

工具:Fiddler

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

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


 

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


 

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



 

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



 

 

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

import urllib.request  
import urllib  
import gzip  
import http.cookiejar  
  
#定义一个方法用于生成请求头信息,处理cookie  
def 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 = header  
    return 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表示登陆成功

解析来就需要获取到签到的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.request  
import urllib  
import gzip  
import http.cookiejar  
  
  
def getOpener(head):  
    # deal with the Cookies  
    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 = header  
    return 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 = '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的环境变量,这里就不在赘述了。



 

  • 大小: 203.8 KB
  • 大小: 68.3 KB
  • 大小: 59.6 KB
  • 大小: 21.6 KB
  • 大小: 38.7 KB
  • 大小: 10.8 KB
  • 大小: 53.9 KB
  • 大小: 12.9 KB
  • 大小: 16.8 KB
  • 大小: 17.2 KB
  • 大小: 72.6 KB
分享到:
评论

相关推荐

    Python爬虫实现自动登录、签到

    Python爬虫实现自动登录、签到 Python爬虫实现自动登录、签到 Python爬虫实现自动登录、签到 Python爬虫实现自动登录、签到 Python爬虫实现自动登录、签到 Python爬虫实现自动登录、签到

    python 爬虫 实现增量去重和定时爬取实例_python增量爬虫_爬虫实现增量去重和定时爬取实例_python_wherev

    本实例将深入探讨如何利用Python实现增量去重和定时爬取,帮助我们构建更加智能和实用的爬虫程序。 首先,让我们了解什么是增量爬虫。传统的网络爬虫会遍历整个网站,下载所有页面,但这种方法对于大型网站来说既...

    爬虫开发Python实例代码.zip

    爬虫开发Python实例代码.zip爬虫开发Python实例代码.zip爬虫开发Python实例代码.zip爬虫开发Python实例代码.zip爬虫开发Python实例代码.zip爬虫开发Python实例代码.zip爬虫开发Python实例代码.zip爬虫开发Python实例...

    Python-Python爬虫京东自动登录在线抢购商品源码.zip

    在本资源"Python-Python爬虫京东自动登录在线抢购商品源码.zip"中,包含了一个使用Python编写的爬虫程序,旨在实现自动化登录京东网站并进行在线抢购商品的功能。这个程序对于开发者来说,是一个很好的学习案例,...

    《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据.pdf

    《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据.pdf《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据.pdf《Python网络爬虫技术案例教程》PPT课件(共10...

    python爬虫20个案例

    讲诉python爬虫的20个案例 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    Python网络爬虫实战.pdf

    本书从Python的安装开始,详细讲解了Python从简单程序延伸到Python网络爬虫的全过程。本书从实战出发,根据不同的需求选取不同的爬虫,有针对性地讲解了几种Python网络爬虫。本书共8章,涵盖的内容有Python语言的...

    pythonscrapy爬虫实例Python爬虫Scrapy实例

    pythonscrapy爬虫实例Python爬虫Scrapy实例

    Python-Pythonscrapy实现贴吧自动登录签到发帖

    Python scrapy实现贴吧自动登录、签到、发帖

    爬虫开发Python开发简单爬虫 实例代码.zip

    爬虫开发Python开发简单爬虫 实例代码.zip爬虫开发Python开发简单爬虫 实例代码.zip爬虫开发Python开发简单爬虫 实例代码.zip爬虫开发Python开发简单爬虫 实例代码.zip爬虫开发Python开发简单爬虫 实例代码.zip爬虫...

    Python网络爬虫技术_习题答案.rar

    Python网络爬虫主要用于自动化地从互联网上抓取大量数据,这对于数据挖掘、市场研究、新闻监控等任务至关重要。学习网络爬虫技术,我们需要掌握Python的基础语法,如字符串操作、文件处理、网络请求库(如requests)...

    python爬虫实例教程

    python网络爬虫实战 pdf是一本由胡松涛所著的python教程工具书,作者以大量实例为基础详细介绍了网络爬虫的编写全过程,非常适合Python网络爬虫初学者以及相关专业师生使用! python网络爬虫实战电子书介绍 ...

    python爬虫基础python爬虫基础

    python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础...

    源码10 个 Python 爬虫入门实例

    【源码】10 个 Python 爬虫入门实例【源码】10 个 Python 爬虫入门实例【源码】10 个 Python 爬虫入门实例【源码】10 个 Python 爬虫入门实例【源码】10 个 Python 爬虫入门实例【源码】10 个 Python 爬虫入门实例...

    Python网络爬虫代码

    【Python网络爬虫代码】是基于Python3编程语言实现的一款数据抓取工具,主要用于从互联网上,特别是百度百科这类网站,自动获取指定网页中的信息。爬虫技术在信息技术领域扮演着重要角色,它能帮助我们高效地提取...

    解析Python网络爬虫_复习大纲.docx

    本文档是关于Python网络爬虫的复习大纲,涵盖了爬虫的基本概念、实现原理、技术、网页请求原理、抓取网页数据、数据解析、并发下载、抓取动态内容、图像识别与文字处理、存储爬虫数据、爬虫框架Scrapy等知识点。...

    2:python网络爬虫权威指南_python网络爬虫权威指南_python爬虫指南_

    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

    Python爬虫入门教程 90-100 凌晨5点的CSDN自动签到器,用Python爬虫干点闲事.zip

    Python爬虫是编程领域中一个实用且有趣的技能,尤其对于数据采集和自动化任务而言。本教程将引导初学者从入门到进阶,了解如何利用Python编写一个简单的CSDN(China Software Developer Network)自动签到器。CSDN是...

    解析Python网络爬虫:核心技术、Scrapy框架、分布式爬虫全套教学资料

    Python网络爬虫是一种用于自动化网页数据抓取的技术,它能够高效地从互联网上获取大量信息。本套教学资料深入解析了Python爬虫的核心技术、Scrapy框架以及分布式爬虫的实现,旨在帮助学习者掌握这一领域的核心技能。...

    python爬虫:Python 爬虫知识大全

    python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识...

Global site tag (gtag.js) - Google Analytics