python爬取qq好友_Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)...
一、效果如下:
二、运行环境:
win10系统;python3;PyCharm
三、QQ机器人用的是qqbot模块
用pip安装命令是: pip install qqbot (前提需要有requests库)
实现自己的机器人:网上好几种写法,很简单,不过有时候环境不同会出现错误,下面是亲测可以运行的:
from qqbot import QQBotSlot as qqbotslot, RunBot
@qqbotslot
def onQQMessage(bot, contact, member, content):
if content == "-hello":#content是好友发的信息
bot.SendTo(contact,"我是,QQ机器人")
if __name__ == "__main__":
RunBot()
四、爬取百度文库需要模块:import urllib.request,urllib,re
获取原网页代码:
提前说下百度文库网页编码是gb2312
def baidu(self,world):
data={}
data['word'] = world
url_World=urllib.parse.urlencode(data,encoding="GBK")
url = "https://wenku.baidu.com/search?"+url_World+"&org=0&ie=gbk"
page = urllib.request.urlopen(url)
html = page.read()
html = html.decode('gbk')
代码解析:
data['word'] = world #world是搜索的内容,也就是关键词
url不必多说就是网页链接
但是二者之间多了一行代码:url_World=urllib.parse.urlencode(data,encoding="GBK")
看一下百度文库搜索"大学":https://wenku.baidu.com/search?word=%B4%F3%D1%A7&org=0&ie=gbk
其中%B4%F3%D1%A7 就是"大学"的十六进制。
也就是说我们想搜索“大学”的相关内容需要把“大学”的中文转成上面格式,如果不转会出现什么状况
我们直接把中文“大学”塞到链接里去访问:https://wenku.baidu.com/search?word=大学&lm=0&od=0&fr=top_home&ie=gbk
会有乱码这个乱码直接导致后面获取原网页解码错误也就是:
html = html.decode('gbk')
解码是让中文能够正常显示,但是上面的乱码是不能通过gbk编码进行解码的,也就会出现错误。
所以不能直接把参数world直接放进去。
而urllib.parse.urlencode(data)这行代码就是把中文转成url格式的。
不过默认的编码是utf-8,直接把data放进去会按照utf-8进行转的话会得到如下链接:
https://wenku.baidu.com/search?word=%E5%A4%A7%E5%AD%A6&org=0&ie=gbk
此链接得到网页效果是和之前把中文放进链接效果一样
网上找到的基本上都是这样的写法,不过百度文库是采用gb2312编码所以需要在那行转码代码中再添加一个编码参数就能够达到目的
如下:urllib.parse.urlencode(data,encoding="GBK")
这样无论是url转码还是后面的解码都会正常运行了。
此过程就能够得到正常的搜索结果的原网页了
用正则获取想要的信息:
上面代码就能把需要的是标题和相应的链接给提取出来
其他的就是容错问题了。
全部代码如下:
from qqbot importQQBotSlot as qqbotslot, RunBot
importurllib.request,urllib,re
classpyth(object):
defbaidu(self,world):
data={} data['word'] =world url_World=urllib.parse.urlencode(data,encoding="GBK") url = "https://wenku.baidu.com/search?"+url_World+"&org=0&ie=gbk"page =urllib.request.urlopen(url) html =page.read() html = html.decode('gbk') title= re.compile(r'2: for i in range(2): pri += "\n"+title1[i]+"\n链接:"+url11[i]; else: pri = "相关内容过少,请换个题目" returnpri @qqbotslot defonQQMessage(bot, contact, member, content): if "搜索" in content[0:2]: if len(content)>2: world = content.split("搜索",1)[1].encode('gbk') run=pyth() run.baidu(world) jieguo = run.baidu(world).encode("utf-8") bot.SendTo(contact,jieguo) if __name__ == "__main__": RunBot()
python爬取qq好友_Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)...相关推荐
- python3发送qq邮件_python3通过qq邮箱发送邮件以及附件
本文实例为大家分享了python3通过qq邮箱发送邮件以及附件的具体代码,供大家参考,具体内容如下ZLP免费资源网 开启qq邮箱的smtp服务ZLP免费资源网 ZLP免费资源网 代码:ZLP免费资源网 ...
- python的三种取整方式_python3.6 numpy 数组的多种取整方式
类型type不变,数值value取整. 截取整数部分 np.trunc 向上取整 np.ceil 向下取整np.floor 四舍五入取整np.rint 类型type改变 AA = np.array A ...
- python提取首字符 判断火车票座位_Python实现自动查取火车票余量,并发送邮件...
这个是之前在学校是真的闲的要吐的时候,自己做着玩的,也算是对Python的一次练习吧,里面全是一些字符串操作,没什么技术含量,各位大佬请让路啦~~嘻嘻 然后,代码长这样: import request ...
- 代码 拉取_Git 利用 Webhooks 实现代码的自动拉取
WebHook 简介 WebHook 功能是帮助用户 push 代码后,自动回调一个您设定的 http 地址. 这是一个通用的解决方案,用户可以自己根据不同的需求,来编写自己的脚本程序. 环境 服务器 ...
- 在线python爬取好友qq空间_Python3.6获取QQ空间全部好友列表
首先要处理的是gtk算法:从上次分析以来代码并没有变 登录QQ空间后搜索gtk字符串,在三个js中出现了 /* |xGv00|e5808eb94a2bdffe3aae60cd22c5efe2 */ d ...
- python生成QQ机器人爬取百度文库链接推送好友并生成词云
QQ机器人爬取百度文库链接推送好友并生成词云 一.环境准备 二.实现QQ机器人 1.QQ机器人介绍 2.安装方法 3.实现自己的QQ机器人 三.百度文库内容链接爬取推送好友 代码实现: 思路分析 1. ...
- 自动抓取QQ好友列表?Windows UIA教你轻松实现
目录:导读 引言 选择Windows UIA框架进行自动化测试的原因 查找窗口 读取QQ软件的好友列表 结语 引言 每个使用QQ的人都有自己的好友列表,但是如果你想要查看所有好友信息,手动一个个点击会 ...
- python爬虫好友图片_用itchat库爬取你所有微信好友的头像,并合成一张大图
几年前,我们给爸妈手机上下载了一款神奇的软件,他的名字叫微信.几年后,爸妈就开始吐槽我们的微信头像了. 爸妈对我们微信头像的关注程度远胜过我们的衣食住行,我在新浪微博上看到了这张统计图. 图片来源:新 ...
- python爬取凤凰新闻网_python3.6爬取凤凰网新闻-爬虫框架式思维
一.序言 先前几篇爬虫的代码,是简单的脚本代码.在爬取小网页觉得挺简单.高效,但涉及复杂网页的时候,就要考虑成熟的爬虫框架与分布式.本篇博客作为无框架式爬虫和有框架式爬虫的一个过渡,介绍具有框架式思维 ...
最新文章
- 读阮一峰对《javascript语言精粹》的笔记,我有疑问。
- 斯坦福AI 5小时DNA测序破世界纪录!创人类新里程碑,成本仅3万
- APP检测软件更新逻辑
- 浅析校园安防视频监控设备发展趋势
- 为什么有人说面向对象编程就是面向接口编程?
- 一文搞定Vim/Vi编辑器
- linux不能识别 符号,在linux中文件中^M符号的问题以及中文识别问题
- python列表中随机两个_随机化两个列表并在python中维护顺序
- c++ queue学习
- advanced installer更换程序id_好程序员web前端培训分享kbone高级-事件系统
- php中连接网页头尾部,网页共用头部和尾部的部分方法
- [ Typescript 手册] JavaScript `Date` 在 Typescript 中的接口
- SegNet(持续更新)
- 202203Self-Supervised Pretraining and Controlled Augmentation Improve RareWildlife Recognition inUAV
- [后缀数组][trie合并][启发式合并][并查集] LOJ #6198. 谢特
- 苹果CMS海螺模板4.0修复版带后台 附安装教程
- 799 - 背包问题VIII - LintCode
- 2018年度10大新兴技术:人工智能、量子计算、增强现实等
- java求一批数据的最大值、最小值、以及掐头去尾之后的平均值。
- Apad Qzone项目总结(二)---换肤功能实现!!!