`
bd2007
  • 浏览: 395090 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

用python写的开心网收菜偷菜的小工具

    博客分类:
  • java
阅读更多
    [size=small;]        其实原理很简单,首先用firfox的插件httpfox来获取登录、查看菜地和偷菜的http请求,再使用python的urllib来模拟发送http请求,对回应数据进行分析,就ok了。[/size]
[size=small;]        第一步:登录[/size]
[size=small;]        第二部:进入花园,获取verify代码[/size]
[size=small;]        第三步:查看有成熟菜的好友列表[/size]
[size=small;]        第四步:查看某个好友的菜地信息[/size]
[size=small;]        第五步:开偷[/size]
 
 
[size=small;]        代码如下:[/size]
 
[size=small;]
#-*- coding:utf-8 -*-import urllibimport socketimport http.cookiejar import randomimport timeimport sysclass farm:        cj = http.cookiejar.cookiejar()    is_login = false    user = ""        password = ""    verify = ""    steal_list = []        def __init__(self,user,password,steal_list):        self.user = user        self.password = password        self.steal_list = steal_list.split(",")            def login(self):        url = "http://www.kaixin001.com/login/login.php";        opener = urllib.request.build_opener(urllib.request.httpcookieprocessor(self.cj))        print("正在登陆开心网....")        f = opener.open(url,"url=/home/&amp;email=" + self.user + "&amp;password=" + self.password)        f.read()        url = "http://www.kaixin001.com/!house/garden/index.php"        print("正在进入农场....")        f = opener.open(url)        data = f.read()                idx = str(data).find("var g_verify = \"");                if idx == -1:            return        idx2 = str(data).find("\"",idx + 18)        if idx2 == -1:            return        is_login = true        self.verify = str(data)[idx+16:idx2]        print("获取key=" + self.verify)    def _havest_one(self,farm_num,fuid):        if self.verify == "":            print("用户尚未登录!")            return        opener = urllib.request.build_opener(urllib.request.httpcookieprocessor(self.cj))        url = "http://www.kaixin001.com/!house/!garden/havest.php?farmnum=" + farm_num + "&amp;seedid=0&amp;fuid=" + fuid + "&amp;r=" + str(random.uniform(0,1))        f = opener.open(url)        data = str(f.read().decode("utf-8"))                if not self.validate(data) :            self.login()            return                index1 = data.find("<ret>")        index2 = data.find("</ret>")        result = data[index1+5:index2]                if result == "succ":                        name = data[data.find("<seedname>")+10:data.find("</seedname>")]            if fuid != "0":                print("★★☆☆成功偷了id(" + fuid + ")家的" + name + "!★★☆☆")            else:                print("★★☆☆成功收获了自己的" + name + "!★★☆☆")        else:            index1 = data.find("<reason>")            index2 = data.find("</reason>")            reason = data[index1+8:index2]            if fuid != "0":                print("!!!!偷id(" + fuid + ")家的菜失败,失败原因:" + reason + "!")            else:                print("!!!!收获自己家的菜失败,失败原因:" + reason + "!")        time.sleep(3)    def validate(self,str):        if str.find("您需要登录后才能继续浏览或操作") != -1:            return false        return true        def havest(self,fuid):        if self.verify == "":            print("用户尚未登录!")            return                opener = urllib.request.build_opener(urllib.request.httpcookieprocessor(self.cj))        url = "http://www.kaixin001.com/!house/!garden/getconf.php?verify=" + self.verify + "&amp;fuid=" + fuid + "&amp;r=" + str(random.uniform(0,1))        f = opener.open(url)        data = f.read()        result = str(data.decode("utf-8"))        if not self.validate(result) :            self.login()            return                    index = result.find("<farmnum>")        name = result[result.find("<name>")+6:result.find("</name>")]        while index != -1:            index2 = result.find("</farmnum>",index)            num = result[index+9:index2]            index3 = result.find("<cropsstatus>",index)            index4 = result.find("</cropsstatus>",index)                        if index3 == -1 or index4 == -1:                index = result.find("<farmnum>",index+10)                continue            status = result[index3+13:index4]            status_str = "状态未知(" + status + ")";            if status == "1":                status_str = "未成熟"            if status == "2":                status_str = "已成熟"            if status == "3":                status_str = "没东西"            index3 = result.find("<name>",index)            index4 = result.find("</name>",index)            fname = "未知"            if index3 != -1 and index4 != -1:                fname = result[index3+6:index4]            print(name + "的第" + num + "块地[" + fname + "]" + status_str)            #成熟的            if status == "2":                flag = false                for f in self.steal_list:                    if f == fname :                        self._havest_one(num,fuid)                        flag = true                if not flag:                    print("●●○○" + fname + "太便宜了,不偷!!!!")            index = result.find("<farmnum>",index+10)    def friend_list(self):        opener = urllib.request.build_opener(urllib.request.httpcookieprocessor(self.cj))        url = "http://www.kaixin001.com/!house/!garden/getfriendmature.php?verify=" + self.verify + "&amp;r=" + str(random.uniform(0,1))        f = opener.open(url)        data = f.read()        result = str(data.decode("utf-8"))        index = result.find("\"uid\":")        while index != -1:            index2 = result.find(",",index)            uid = result[index+6:index2]            index3 = result.find("\"realname\":",index)            index4 = result.find(",",index3)            if index3 == -1 or index4 == -1:                index = result.find("\"uid\":",index+3)                continue            name = result[index3+11:index4]            print("uid=" + uid + ",name=" + name)            self.havest(uid)            time.sleep(5)                        index = result.find("\"uid\":",index+3) f = farm(sys.argv[1],sys.argv[2],sys.argv[3])f.login()while true:    f.havest("0")    time.sleep(10)    f.friend_list()    time.sleep(10)
<font size="3">  
</font>[/size] 
 
[size=small;] [/size]
[size=small;]使用方法:[/size]
[size=small;]1、下载安装python3.1[/size]
[size=small;]2、保存上边的文本为farm.py[/size]
[size=small;]3、命令行下敲入[/size]
[size=small;];farm.py 开心网用户名 开心网密码 要偷的菜的列表(半角逗号分割)[/size]
 
0
1
分享到:
评论

相关推荐

    python偷菜程序 python生成XML文件

    ### Python生成XML文件与字符编码理解 #### 一、Python生成XML文件 在现代Web开发中,XML(可扩展标记语言)是一种非常重要的数据交换格式。它被广泛应用于配置文件、数据传输等领域。使用Python来生成XML文件可以...

    python写的唐诗三百首小工具

    本文将详细讲解一款使用Python编写的“唐诗三百首小工具”,它结合了科技与传统文化,旨在帮助幼儿园和小学生轻松学习和欣赏唐诗,提升文学素养。 首先,我们要理解这个小工具的核心功能。它不仅具备系统语音朗读...

    Python 网络测试小工具

    Python 网络测试小工具 。。。。。。。。。。

    自己写的二个python小工具,用于图片处理的

    标题中的“自己写的二个python小工具,用于图片处理的”揭示了这是一份与Python编程相关的资源,其中包含了两个自定义的小程序,主要用于图片处理。这些工具可能涵盖了图像的查看、格式转换、编辑或其他与图像操作...

    python写的小东西

    标题中的“python写的小东西”很可能是指一个使用Python编程语言编写的小型应用程序或脚本。Python因其简洁明了的语法和强大的功能而受到广大程序员的喜爱,尤其适合开发各种实用工具和小型项目。在这个场景中,可能...

    文件编码转换工具(GB2312与UTF-8转换) python写的一个小工具

    文件编码转换工具(GB2312与UTF-8转换) python写的一个小工具文件编码转换工具(GB2312与UTF-8转换) python写的一个小工具文件编码转换工具(GB2312与UTF-8转换) python写的一个小工具

    用python编写的一款小游戏,实现人狼羊菜过河

    【标题】"用python编写的一款小游戏,实现人狼羊菜过河" 描述了一款基于Python编程语言开发的趣味逻辑游戏。在这个游戏中,玩家需要帮助人、狼、羊和菜安全地过河,同时要确保在任何时候,狼不会与羊单独在一起...

    java2python--java代码转python工具

    Java到Python的转换工具,如"java2python",是一个重要的软件开发辅助工具,它能够帮助程序员将已有的Java代码转换成Python代码,以便在Python环境中执行或进行进一步的开发工作。这种转换过程涉及到多种语言特性和...

    python安装包,网络爬虫工具

    python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python...

    python读写excel文件

    python读写excel

    python 读写TXT文件

    初学python 分享一个小程序:python 如何写入TXT文件!

    python写的获取文献格式小工具

    用python写的,调用cnki数据库,将查询结果进行文献格式化

    Python写简单的拼图小游戏完整项目

    综上所述,这个"Python写简单的拼图小游戏"项目涵盖了Python编程的基础知识,图像处理,GUI设计,算法运用以及用户交互等多个方面,是一个综合性的学习实践项目。通过完成这个项目,开发者不仅可以掌握Python编程...

    python项目——开心麻花影视作品分析.zip

    python项目——开心麻花影视作品分析.zip python项目——开心麻花影视作品分析.zip python项目——开心麻花影视作品分析.zip python项目——开心麻花影视作品分析.zip python项目——开心麻花影视作品分析.zip ...

    Python小游戏(我自己写的)

    【Python小游戏】是一种利用Python编程语言以及其游戏开发库Pygame构建的小型应用程序。Python以其简洁易懂的语法和丰富的库支持,成为了初学者和专业开发者制作游戏的热门选择。Pygame是Python的一个模块集合,提供...

    用python写个二维码

    运用python写个二维码

    python写的影像切割 小工具箱源码下载

    python代码写的切割影像小工具箱。。。。。。。。。。。。

    基于python写的一个简易彩票随机工具

    一个简单到不能再简单的小软件,随机生成一串彩票号码,相信虚拟机吧,我相信他肯定比彩票店里的机选要准,哈哈哈

    python 读写PLC实例

    python 使用 snap7 实现西门子 plc 1200的读写 地址读写

Global site tag (gtag.js) - Google Analytics