Python 用selenium实现自动发说说 您所在的位置:网站首页 qq如何发红包说说 Python 用selenium实现自动发说说

Python 用selenium实现自动发说说

2024-07-16 10:51| 来源: 网络整理| 查看: 265

用Selenium实现自动发说说

  笔者刚学selenium,突然想用它实现自动发说说,无非就是几个点击和输入嘛,应该很简单?

一、实现QQ空间自动登录

登录几种方法,既可以进入i.qq.com,然后模拟点击或者输入登录;还有就是直接利用QQ的一个面登录网址登录!

(一)、进入i.qq.com输入登录

这里输入密码登录网上代码很多,我就直接上代码了,另外如果你电脑登了QQ可以直接模拟点击登录,自动登录。

如图:

        

1.点击自动登录:

import time from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() # 获取火狐驱动 driver.get("https://i.qq.com/") # 进入网页 # 方法一:直接点击登录(前提是电脑已经登录了QQ) driver.find_element_by_class_name('login_wrap').click() # 实现点击登录 print("登录成功!")

2.输入账号密码登录:  

import time from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() # 获取火狐驱动 driver.get("https://i.qq.com/") # 方法二 :输入账号密码登录 # 因为表在iFrame里面,所以需要进入iFrame里面 driver.switch_to.frame("login_frame") # 找到frame入口 driver.find_element_by_id("switcher_plogin").click() # 点击登录 # # 账号框输入自己的qq账号 driver.find_element_by_id("u").send_keys("你的账号") # 里面填你的账号 # #密码框输入密码 driver.find_element_by_id("p").send_keys("你的密码") # 密码 # #点击登陆按钮 driver.find_element_by_id("login_button").click() print("登录成功!")

(二)、利用网址进入

先登录电脑QQ,点击空间(在断网的时候点击),然后把网址复制下来,然后直接模拟打开那个网址就好了;注意如果在有网络状态,那个网址会跳走,手快点也可以复制到。我这里就不演示了。

二、实现自动发说说

进去后想办法说说点击,这个也容易找到:

点击查看元素:

     

很容易找到 "QM_Profile_Mood_A" ,然后用,.find_element_by_id,定位然后点击就OK了。

接下来就是一个发说说的编辑框了,想办法把东西输入进去然后点击发表按钮就OK了

老办法,点击检查元素

看起来很容易,但是要注意下,这个元素在一个IFrame里面,先进入 ‘'app_canvas_frame'’ 

driver.switch_to.frame('app_canvas_frame') # 同上面找iFrame方法找,就是往上看源代码,找到iFrame

然后直接定位这个class,.send_keys(‘测试说说’)

你会发现会报错!无法向它进行键盘输入!

我们明明可以定位到它,而且检查到也是它,其实问题就出来编辑框上,我们发现当我们用鼠标点击到编辑框,编辑框里面的class会变!

光标未在编辑框时:

光标在编辑框时:

问题就出来这,而且你当光标未在编辑框,你是定位不到后面那个class的!这么一来就有思路了,我们先模拟点击进入编辑框,然后再定位到后面那个class,在把需要发的内容发送到编辑框,最后点击发表!直接看代码:

import time from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() # 获取火狐驱动 driver.get("https://i.qq.com/") elem = driver.find_element_by_class_name('login_wrap') elem.click() print("成功登录QQ空间!") time.sleep(1) driver.find_element_by_id("QM_Profile_Mood_A").click() print('点击说说成功!') time.sleep(2) try: driver.switch_to.frame('app_canvas_frame') # 进入iFrame time.sleep(0.5) try: driver.find_element_by_css_selector('div.textinput.textarea.c_tx3').click() # 因为第一个找到的class无法点击,所以我们找到可以点击然后光标进入编辑框的,然后模拟点击 time.sleep(0.5) driver.find_element_by_css_selector('div.textinput.textarea.c_tx2.input_focus.textinput_focus').send_keys("自动发说说测试") # 这里应该和上面对齐的,可能是CSDN有长度限制吧,大家粘贴的时候注意下 print('文字输入成功') driver.find_element_by_css_selector('a.btn-post.gb_bt.evt_click').click() print('发送成功!') finally: print('OK!') finally: print('End')

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有