首先我们需要爬虫的模块函数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='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)
哦了,爬虫还是很有意思的,朋友们可以自己去试试玩玩,这东西,也没有那么容易进监狱的,那些内部数据不是咱随便就能爬虫出来的,明面上的数据也不犯法,就随便玩,不用担心的。
嘿嘿嘿,感谢支持。