首页 » PHP教程 » smartqqphp技巧_80行代码打造微信机械人实现下载百度文库

smartqqphp技巧_80行代码打造微信机械人实现下载百度文库

访客 2024-11-17 0

扫一扫用手机浏览

文章目录 [+]

生活当中免不了要下载百度文库,但是百度很恶心的是要下载券,收费呀啥的(这次的这个不能下载收费文档哦),以是我就在微信的搜索功能(非常强大)上搜怎么样免费下载百度文库,加了一些群,个中一个群便是有一个有专门的机器人,只要你往群里发链接,机器人自动回答你下载链接

首先我在csdn上查阅干系资料群机器人的文章,明白Python关于群机器人有两大类,QQ群用qqbot库(基于smartqq),微信群用itchat库(基于微信网页版)。
但是腾讯已经把smartQQ关了(也便是不能通过qqbot来制作QQ群机器人),只能建一个微信群机器人

smartqqphp技巧_80行代码打造微信机械人实现下载百度文库

我的制作思路:

smartqqphp技巧_80行代码打造微信机械人实现下载百度文库
(图片来自网络侵删)

1、通过itchat登录微信,实时监听所要建的群,假如有人发文库链接,将链接提取出来(比较大略)

2、将所提取到的文库连接保存,然后要求下载网站,网站返回下载链接(这个还得要自己去抓包,去逐步剖析,我也是花了一整天才把他全体下载流程弄懂,很麻烦,本日我们重点讲这个,你们可以拿其他网站试试,亲测这个链接很长,我用到了百度的短连接,为了本帖不冗长,省去不讲)

3、将网站返回的链接发送给相应的群,并@相应的人(比较大略)

准备

这个网站链接是:http://139.224.236.108/1.html(免费给他打了一波广告把,这个网站是收费的,下载的文档也是源文档,买账号也就几块钱,但是每个账号每天会限定下载次数,但是你可以多买几个账号,当一个被限定了之后,遍历其他账号,这样就OK了,实在下载文档这个不是常常下,但是有需求的时候没有下载券就麻烦了,为了兄弟们更好的复现,我把我买的账号分享给大家)

详细

在百度文库上随便获取一个要下载券的文档链接,

点击下载之后又是一波抓包,发送了要求post和nocode

跳转到如下界面:

再点击这个下载,又发送了一个要求详细见下面的down(),我就不再过多讲了

机器人代码:

import requests

firsturl=input('请输入文档链接:')

# 以下用到了两个链接,一个是查询文档ID的,另一个是下载的

url1 = \"大众http://139.224.236.108/post.php\"大众

url3 = \"大众http://139.224.236.108/downdoc.php\公众

# 将传入的文档链接进行转化

downloadurl = firsturl.replace(\"大众/\公众, \"大众%2F\公众).replace(\"大众:\"大众, \公众%3A\"大众)

# head1查询文档ID的数据头

# data1是查询的数据内容,个中将docinfo的值转化为链接

# 查询得到结果,截取id的那一段并返回

def query():

head1 = {\"大众POST\"大众: \"大众/post.php HTTP/1.1\"大众,

\公众Host\公众: \"大众139.224.236.108\"大众,

\公众Content-Length\公众: \"大众145\"大众,

\"大众Accept\公众: \"大众/\公众,

\"大众Origin\"大众: \"大众http://139.224.236.108\"大众,

\"大众X-Requested-With\"大众: \公众XMLHttpRequest\"大众,

\公众User-Agent\"大众: \"大众Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\"大众,

\"大众Content-Type\公众: \公众application/x-www-form-urlencoded; charset=UTF-8\"大众,

\"大众Referer\"大众: \公众http://139.224.236.108/1.html\公众,

\"大众Accept-Encoding\"大众: \公众gzip, deflate\公众,

\"大众Accept-Language\公众: \公众zh-CN,zh;q=0.9,en;q=0.8\公众,

\公众Cookie\公众: \公众usrname=901961495; usrpwd=559448\"大众

}

data1 = 'usrname=901961495&usrpass=559448&docinfo=downloadurl&taskid=up_down_doc1'

data1 = data1.replace('downloadurl', downloadurl)

respons = requests.post(url1, data=data1, headers=head1).json()

id = respons['url']

id = id[37:]

return id

id = query()

# head3下载文档的数据头

# data3是要求下载的数据内容,个中vid是查询内容返回的文档id值

# 获取下载链接

def down():

Referer = \公众http://139.224.236.108/nocode.php?id={docid}\公众

head3 = {\"大众POST\"大众: \"大众/downdoc.php HTTP/1.1\公众,

\"大众Host\"大众: \"大众139.224.236.108\公众,

\公众Content-Length\"大众: \公众54\"大众,

\"大众Accept\"大众: \"大众/\公众,

\公众Origin\公众: \公众http://139.224.236.108\"大众,

\公众X-Requested-With\"大众: \公众XMLHttpRequest\公众,

\"大众User-Agent\"大众: \"大众Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\公众,

\公众Content-Type\公众: \"大众application/x-www-form-urlencoded; charset=UTF-8\公众,

\"大众Referer\"大众: Referer.format(docid=id),

\"大众Accept-Encoding\"大众: \"大众gzip, deflate\公众,

\"大众Accept-Language\公众: \公众zh-CN,zh;q=0.9,en;q=0.8\"大众,

\"大众Cookie\"大众: \"大众usrname=901961495; usrpwd=559448\"大众

}

data3 = 'vid={docid}&taskid=directDown'

data3 = data3.format(docid=id)

response = requests.post(url3, data=data3, headers=head3).json()

downurl = response[\公众dlink\"大众].replace(\公众\\\"大众, '')

print(downurl)#点击这个URL,会自动下载文件哦

return downurl

query()

down()

上面可以实现一个独立的下载,但是如果我们要和微信联系起来,制作微信机器人,那么,我们可以把上面的query(),down(),弄成一个函数,传入一个链接,经由这个函数处理,返回下载地址,到时候直接调用这个函数即可

接下来便是上岸微信,监控对应的群,放在做事器上,你就可以打造出24小时下载的机器人了。

实当代码:

@itchat.msg_register([itchat.content.TEXT], isGroupChat=True) # 注册一个群的处理

def print_content(msg):

if msg.User[\"大众NickName\"大众] == qun:# 这里可以在后面加更多的or msg.User[\"大众NickName\公众]=='你希望自动回答群的名字

if str(msg['Text'][0:5])==\"大众https\"大众:#检测所发的是不是链接,是通过前5个

huifubdwk= GET_SHORTURL(str(msg['Text']))#这个GET_SHORTURL是我上面所说的那个函数,我自己定义的

print(msg.User['NickName'] + \"大众:\公众 + msg['Text'] ) # 打印哪个群给你发了什么

print(\"大众%s+\n\公众%huifubdwk) # 打印机器人回答的

itchat.send(u'@%s\u2005 %s' % (msg['ActualNickName'],huifubdwk), msg['FromUserName'])

else:# 不是链接直接忽略

print(msg['Text'])

else:#不是相应群直接忽略

pass

好了,本日到这就结束了

来源网络,侵权联系删除

私信我或关注微旗子暗记:狮范儿,回答:学习,获取免费学习资源包。

标签:

相关文章

今日头条算法岗位面试核心方法与必备知识

大数据、人工智能等技术在各行各业得到了广泛应用。今日头条作为中国领先的资讯平台,其算法技术更是备受关注。今日头条算法岗位面试成为了...

PHP教程 2025-01-31 阅读1 评论0

今日头条算法推送如何打造个化阅读体验

在互联网时代,信息爆炸成为常态,用户获取信息的渠道越来越多,而时间却愈发有限。如何让用户在海量信息中快速找到感兴趣的内容,成为了各...

PHP教程 2025-01-31 阅读0 评论0