首先我们需要爬虫的模块函数and python的win32库。
这里我们以郭老师语录为例
import win32gui
import win32con
import win32clipboard as w
#抓取数据
import requests
import time
import random
from bs4 import BeautifulSoup
上面三个是用来操纵qq窗口的,下面三个是用来爬取数据的。
我们首先爬取数据。
百度郭老师语录,这里我建议朋友们在爬取简单数据的时候分为两个函数模块写,分别是het_html和get_data,这样哪里出bug会很清楚。
代码:
def get_be(url,data=None):#抓取html
header={
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
time=random.choice(range(80,100))#防止被检测到为爬虫
rep=requests.get(url,headers=header,timeout=time)
rep.encoding="utf-8"
return rep.text
def get_data(htmltext):
a_list=[]
bs=BeautifulSoup(htmltext,"html.parser")#python的内置标准库
body=bs.body
data = body.find('div', {'class':'icontent'})
p=data.find_all('p')
for line in p:
a_list.append(line.string)
return a_list
这两个函数,我们只需要给他一个主函数就可以获取我们呢需要的信息,这里的参数都是在查找的页面找到的,如下:
在这里我获取了头部信息
在这里我获得了源码位置
之后我们只需要给它一个url也就是网址便可获得数据
url='http://www.mnw.cn/keji/internet/2258547.html'
html=get_be(url)
c_list=[]
b_list=get_data(html)
for i in b_list:
if i==None :
continue
b=list(i)
while '\u3000' in b :
b.remove('\u3000')
if '\u3000' not in b :
c_list.append(''.join(b))#得到c_list
数据额已经获取,接下来我们对腾讯qq进行操作,这里是对窗口操作,对qq来说,相当于我们用键盘鼠标,只是手速很快而已,所以QQ无法识别其实是python操作,话说很多的浏览器都有反爬的功能,我寻思QQ可能也有,因此这个方法可以完美伪装咱们
代码:
name ="全员反恐519"
for i in c_list:
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT, i)
w.CloseClipboard()
handle = win32gui.FindWindow(None, name)
win32gui.SendMessage(handle, 770, 0, 0)
win32gui.SendMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
这个name就是我们给要发的好友的备注,不管是好友还是群,操作方法都是一样的。这里总体还是对win32的应用,因为这不是一篇主讲解的博客,所以博主也懒得说。它总体过程其实就是将字符串复制到剪切板中,获取窗口信息,之后按回车发送,因为是机器操控,所以理论上只要你的电脑性能够好,网速够快,一瞬间就可以发送无数条消息,堪称夺取龙王利器,有些朋友可能回想:那腾讯qq反应的过来吗?,这里我要说,想多了朋友,腾讯服务区稳定性可是网络一条GAI最靓的崽,每一刻那么多人同时再用这些东西,您见过qq崩溃吗?见过微信崩溃吗?所以没必要担心这些的,要是有一天腾讯的服务器敢崩,他们一天估计就亏得只剩裤衩了。
全部代码就是
import win32gui
import win32con
import win32clipboard as w
#抓取数据
import requests
import time
import random
from bs4 import BeautifulSoup
def get_be(url,data=None):#抓取html
header={
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
time=random.choice(range(80,100))#防止被检测到为爬虫
rep=requests.get(url,headers=header,timeout=time)
rep.encoding="utf-8"
return rep.text
def get_data(htmltext):
a_list=[]
bs=BeautifulSoup(htmltext,"html.parser")#python的内置标准库
body=bs.body
data = body.find('div', {'class':'icontent'})
p=data.find_all('p')
for line in p:
a_list.append(line.string)
return a_list
url='http://www.mnw.cn/keji/internet/2258547.html'
html=get_be(url)
c_list=[]
b_list=get_data(html)
for i in b_list:
if i==None :
continue
b=list(i)
while '\u3000' in b :
b.remove('\u3000')
if '\u3000' not in b :
c_list.append(''.join(b))#得到c_list
#发送的消息
#窗口名字
print(c_list)
name ="全员反恐519"
for i in c_list:
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT, i)
w.CloseClipboard()
handle = win32gui.FindWindow(None, name)
win32gui.SendMessage(handle, 770, 0, 0)
win32gui.SendMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
哦了,爬虫还是很有意思的,朋友们可以自己去试试玩玩,这东西,也没有那么容易进监狱的,那些内部数据不是咱随便就能爬虫出来的,明面上的数据也不犯法,就随便玩,不用担心的。
嘿嘿嘿,感谢支持。