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转码还是后面的解码都会正常运行了。        此过程就能够得到正常的搜索结果的原网页了    用正则获取想要的信息:                   上面代码就能把需要的是标题和相应的链接给提取出来    其他的就是容错问题了。    全部代码如下:         
        

   



原文地址:https://www.cnblogs.com/chu03/p/8480848.html

时间: 2024-12-04 16:35:29

Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)的相关文章

python 利用selenium爬取百度文库的word文章

今天学习如何使用selenium库来爬取百度文库里面的收费的word文档 from selenium import webdriver from selenium.webdriver.common.keys import Keys from pyquery import PyQuery as pq from selenium.webdriver.support.ui import WebDriverWait from selenium import webdriver import time o

python--输入检索词自动爬取百度搜索页标题信息

背景:在百度每次输入关键词检索后,会出现很多的检索页,不利于有效阅读,为更方便收集检索信息,编写了一个可以收集每个检索页与检索词相关的十条检索信息(百度在每个检索页放置十条检索标题信息).可以根据需要选择爬取多少检索页,通过修改main()函数的depth变量 1 import urllib.request 2 import re 3 4 def get_html_text(url,data_lst,depth): 5 7 for i in range(depth): 8 9 # 根据分析构造网

使用Selenium爬取百度文库word文章

转载请注明作者和出处: http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 前言 问题分析 预备知识 1 Selenium 11 简介 12 安装 13 基础知识 131 小试牛刀 132 模拟提交 133 元素选取 134 界面交互 135 添加User-Agent 2 Xpath 动手实战 1 页面切换 2 内容爬取 3 整体代码 总结 1 前言 大家都应该有过从百度文库下载

python+selenium爬取百度文库不能下载的word文档

有些时候我们需要用到百度文库的某些文章时,却发现需要会员才能下载,很难受,其实我们可以通过爬虫的方式来获取到我们所需要的文本. 工具:python3.7+selenium+任意一款编辑器 前期准备:可以正常使用的浏览器,这里推荐chrome,一个与浏览器同版本的驱动,这里提供一个下载驱动的链接https://chromedriver.storage.googleapis.com/77.0.3865.40/chromedriver_win32.zip 首先我们来看一下百度文库中这一篇文章https

python 爬取百度url

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-08-29 18:38:23 4 # @Author : EnderZhou ([email protected]) 5 # @Link : http://www.cnblogs.com/enderzhou/ 6 # @Version : $Id$ 7 8 import requests 9 import sys 10 from Queue import Queu

python3 爬虫学习-根据关键词爬取百度百科内容

小白编了好久才写出来,记录一下免得之后再用的时候都忘了还得重新学~ 学习爬虫最开始是学习了慕课上的python课程,然后学习了慕课和网易云上的爬虫教程.这两个自己去查一下就好了~ 开始还比较费劲,毕竟熟悉需要时间么,而且python也不太熟悉. 关于python版本:我一开始看很多资料说python2比较好,因为很多库还不支持3,但是使用到现在为止觉得还是pythin3比较好用,因为编码什么的问题,觉得2还是没有3方便.而且在网上找到的2中的一些资料稍微改一下也还是可以用. 好了,开始说爬百度百

27、周末吃什么(每周五自动爬取下厨房本周最受欢迎的菜谱)

在之前吴氏私厨的基础上,每周五自动爬取下厨房本周最受欢迎的菜谱 1 import requests 2 import time 3 import schedule 4 import smtplib 5 from email.mime.text import MIMEText 6 from email.header import Header 7 from bs4 import BeautifulSoup 8 9 def caipu_fun(): 10 res = requests.get('ht

Scrapy精华教程(六)——自动爬取网页之II(CrawlSpider)

一.目的. 在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中使用基于Spider实现了自己的w3cschool_spider,并在items.py中定义了数据结构, 在pipelines.py中实现获得数据的过滤以及保存. 但是以上述方法只能爬取start_url列表中的网页,而网络爬虫如google等搜索引擎爬虫实现的就是对整个互联网的爬取,所以在本教程中研究使用scrapy自动实现多网页爬取功能. 在教程(五)

[PHP] 网盘搜索引擎-采集爬取百度网盘分享文件实现网盘搜索(二)

前情提要:最近使用PHP实现了简单的网盘搜索程序,并且关联了微信公众平台,名字是网盘小说.用户可以通过公众号输入关键字,公众号会返回相应的网盘下载地址.就是这么一个简单的功能,类似很多的网盘搜索类网站,我这个采集和搜索程序都是PHP实现的,全文和分词搜索部分使用到了开源软件xunsearch. 上一篇([PHP] 网盘搜索引擎-采集爬取百度网盘分享文件实现网盘搜索)中我重点介绍了怎样去获取一大批的百度网盘用户,这一篇介绍怎样获得指定网盘用户的分享列表.同样的原理,也是找到百度获取分享列表的接口,