有的时候在看QQ空间的时候,总想着把别人的赞全部点一遍,这样子自己看得舒坦,别人也会觉得你会关注着他,但是我们该怎样做一个点赞程序呢,这是一个很重要的问题。
制作准备
selenium的安装
这是一个功能很强大第三方库,我们现在依然能使用这个库做一些简单的程序,那么我们现在先看一下如何安装这个操作浏览器的第三方库,如果安装了的,我们可以跳过这一步。
首先打开运行菜单,输入命令pip install selenium
,按下回车后会出现控制命令行,当出现Requirement already satisfied: selenium in c:\xxx\appdata\local\programs\python\python37\lib\site-packages (3.141.0)
时候,证明我们安装成功
Chrome Driver 的安装
在Chrome的设置中查看版本号
按照对应的驱动在淘宝提供的镜像服务中下载我们所需要的版本
解压文件到Python安装目录下的程序目录
打开Python编辑器,测试下面代码
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://blog.csdn.net/qq_45030271/article/details/108889955?spm=1001.2014.3001.5501")
time.sleep(2)
driver.close()
出现以上页面时,就安装成功了在打开页面后只会显示两秒
程序的实现
用下面代码,打开QQ空间
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://qzone.qq.com")
首先我们要解决登录的问题,我们直接创建一个输入框获取用户的用户名以及密码,并且输入到相应的文本框中。
在这里,我们为了保障用户的隐私,并不会主动去获得用户的账号及用户的密码,我们放出页面,等待我们的页面在扫码或者输入账号后跳转之后进行分析cookies,并且进行相应的活动。
当我们在分析地时候,可以看到相关的一些信息,我们的登录界面和我们的后面的图片在浏览器中属于不同的元素
相关的元素当中似乎有一个链接,那我们在新建标签页中点击这个标签看看能发现什么,是不是一个登录链接
在我们去登录的时候会发现说跳转链接无效
在我们查找NetWork的时候,我们在其中发现了一个与其很像的链接
在我们打开之后,我们看到了果然是其登录链接
我们可以输入下面的网址进行登录
https://xui.ptlogin2.qq.com/cgi-bin/xlogin?proxy_url=https%3A//qzs.qq.com/qzone/v6/portal/proxy.html&daid=5&&hide_title_bar=1&low_login=0&qlogin_auto_login=1&no_verifyimg=1&link_target=blank&appid=549000912&style=22&target=self&s_url=https%3A%2F%2Fqzs.qzone.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone%26specifyurl%3Dhttp%253A%252F%252Fuser.qzone.qq.com%252F2731693351&pt_qr_app=%E6%89%8B%E6%9C%BAQQ%E7%A9%BA%E9%97%B4&pt_qr_link=http%3A//z.qzone.com/download.html&self_regurl=https%3A//qzs.qq.com/qzone/v6/reg/index.html&pt_qr_help_link=http%3A//z.qzone.com/download.html&pt_no_auth=1
更改我们自己的代码,依照下图输入
继续改进代码,我们发现我们的链接指向有所问题,所以我们要让用户输入自己的账号,并跳转到她自己的主页。
接下来,我们就可以登录我们自己的QQ空间了
下一步,我们要实现如何在QQ空间中点赞
再次分析我们的网站源代码,我们会发现其实点赞的图片其实是使用JS实现的,那么我们可以让我们的selenium进行点击,这样我们就可以进行点赞的功能了
当我们真正点击时,显示的是dolike和unlike app这两个选项,我们将这个链接放进我们的电脑中进行请求后发现,这个请求是一个json格式的数据形式。
那么我们在这里将不会使用selenium进行点赞,我们将使用一个简单的第三方库模仿点击,来实现操作
Pyautogui实现点赞
安装
使用
导入Pyautogui模块,增加下列代码
我们会看见鼠标在四周一直运动,你可以按下ESC或者将鼠标移到左上角,以退出循环
利用截图功能保存大拇指图片
输入下面的代码,这是一个关于检测是否有没有点赞的大拇指图片的一个自动化程序,我们使用鼠标的移动一直执行本程序,本程序会在随机选择一个位置,是的我们的每次移动的位置都是不同的,这样也不会是的QQ认为我们是在用相关的程序刷代码,那么我们当检测到我们图片的位置后,交给我们的程序去点击,这样,我们的程序就能一直使用了。
完整代码
from selenium import webdriver
import easygui,time,pyautogui,random
from tkinter import messagebox
QQnum = easygui.enterbox(title = "请输入QQ号",msg = "请输入QQ号")
driver = webdriver.Chrome();
driver.maximize_window()
driver.get("https://xui.ptlogin2.qq.com/cgi-bin/xlogin?proxy_url=https%3A//qzs.qq.com/qzone/v6/portal/proxy.html&daid=5&&hide_title_bar=1&low_login=0&qlogin_auto_login=1&no_verifyimg=1&link_target=blank&appid=549000912&style=22&target=self&s_url=https%3A%2F%2Fqzs.qzone.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone%26specifyurl%3Dhttp%253A%252F%252Fuser.qzone.qq.com%252F"+QQnum+"&pt_qr_app=%E6%89%8B%E6%9C%BAQQ%E7%A9%BA%E9%97%B4&pt_qr_link=http%3A//z.qzone.com/download.html&self_regurl=https%3A//qzs.qq.com/qzone/v6/reg/index.html&pt_qr_help_link=http%3A//z.qzone.com/download.html&pt_no_auth=1")
try:
button=driver.find_element_by_class_name("face")
# print(button)
button.click()
except:
messagebox.showwarning(title='提示', message='自动登录错误,请手动进入')
else:
pass
time.sleep(2)
while True:
try:
pyautogui.scroll(-100,x=random.randint(403,1311#移动x坐标随机选择
),y=random.randint(256,747)#移动y坐标随机选择
)
time.sleep(0.1)
location = pyautogui.locateOnScreen('THUMBS.png')
if location != None:
pyautogui.click(location)
time.sleep(0.1)
except Exception as e:
pass
else:
pass
转载说明
如需转载,请附上原文链接