from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
# 1. 打开网站,窗口最大化
driver = webdriver.Chrome()
driver.get('https://i.qq.com/')
driver.maximize_window()
# 点击登录
try:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it('login_frame'))
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="img_out_此处填写QQ号"]'))).click()
driver.switch_to.default_content()
except Exception as e:
print(f"An error occurred while trying to log in: {e}")
driver.quit()
# 点击说说
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="menuContainer"]/div/ul/li[5]/a'))).click()
except Exception as e:
print(f"An error occurred while trying to click on 'Shuoshuo': {e}")
driver.quit()
# 切换框架
try:
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'iframe.app_canvas_frame')))
driver.switch_to.frame(element)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, '$1_substitutor_content'))).click()
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, '$1_content_content'))).send_keys('自动化测试')
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, '发表'))).click()
except Exception as e:
print(f"An error occurred while trying to post a status update: {e}")
driver.quit()
# 检查一下
# Add any necessary checks here, or simply wait for a certain amount of time to see the result
time.sleep(10)
# Remember to close the driver after you're done
driver.quit()
from pynput import mouse
# 定义一个函数来处理鼠标点击事件
def on_click(x, y, button, pressed):
if pressed:
print(f"Mouse clicked at ({x}, {y}) with button {button}")
# 创建鼠标监听器
with mouse.Listener(on_click=on_click) as listener:
listener.join()
前言
最近,发现各种奇怪的事件都发在校园墙上了,但是这些校园墙大多数都是个人运营,无法确保信息安全以及公平公正,这几天看到两个人在墙上撕逼,很明显墙主(运营校园墙账号的人)有明显的偏袒迹象,所以打算开发一个绝对公正且尽可能不会泄露隐私的校园墙机器人
开发历程
刚开始,我是很直接的面向Google编程,确实找到了合适的脚本,但是吧,总感觉差点意思,因为只可以发文字,而且代码似乎还有些过时,以下是修改好后可以直接用的代码,但是只可以用于发送文字
但使用这个脚本,需要电脑上已经登陆QQ的前提下,而且需要确保网络畅通,有没有什么更好的办法呢?因为我需要发送图片,单纯的文字已经无法满足我啦,但QQ发送图片需要重定向到资源管理器中选择图片,难办,那就使用框架自动进行点击操作吧,简单写个python脚本,来获取鼠标的位置信息
这个脚本会实时记录你鼠标当前点击的位置坐标,并返回到控制台,本来打算写个log记录的,但是后来来想想,直接复制粘贴也不是不行,于是乎,通过断点,进行图片上传操作,并且记录坐标,在上面的自动发送文字说说脚本中加入了自动发送图片的点击程序,至此,完整的程序如下
为了确保定时发送,还写了个定时程序,和主程序是分开的,因为再写进去,感觉过于混乱了,定时程序如下:
当然,感觉给这个东西最外面加个
while True
是个不错的选择,但是,我是懒狗,接下来,需要获得素材,并且做到定点上传,素材将以图片的形式直接放在我的电脑文件夹中,通过上文的鼠标模拟点击来实现,至此,差不多是完成了,接下来只需要架设到服务器上即可一些小感想
本人对于各种校内外八卦并无多少兴趣,开发这个脚本也纯粹是一时兴起,我并不感觉这玩意有什么实质性价值,但是,开发出来确实是会给人以成就感,当然,我在3h内完成了这些的开发,并且在1h写完这篇blog
现在校内的各种事件层出不穷,尤其是在一些规模较大的学校,但很明显,这些校外的校园墙或者论坛不是老师可以干涉的地方,老师们通常只擅长教书育人,对于信息技术并没有过多的了解,但希望有朝一日,学生们可以摆脱由于校外环境导致的情绪异常,不被无意义的言论攻击
共勉
挖坑
这里本人大致思想是使用PGP签名,让程序自己生成密钥,我不会获取密钥,让程序之间互相完成加解密,我作为开发者,服务器拥有者,无法查看具体内容,并且在完成对于指定投稿者的内容获取和加密后,自动删除原文,只保留加密后的副本,以减少信息泄露所带来的影响,不过那都是后话了,说不定会在一周内爆肝出来?我不知道,再说吧