python使用selenium模拟浏览器进入好友QQ空间留言功能

 更新时间:2022年04月12日 15:22:04   作者:一事无成~  
这篇文章主要介绍了python使用selenium模拟浏览器进入好友QQ空间留言,在本文实现过程中需要注意的是留言框和发表按钮在不同的frame,发表在外面的一层,具体实现过程跟随小编一起看看吧

首先下载selenium模块,pip install selenium,下载一个浏览器驱动程序(我这里使用谷歌)。

#导入
#注意python各版本find_element()方法的变化(python3.10)
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
# 创建一个模拟浏览器对象,然后通过对象去操作浏览器s=Service("chromedriver.exe")browser=webdriver.Chrome(service=s)

QQ空间默认登录是使用二维码登录,我们要使用账号密码登录注意QQ空间登录框在一个iframe标签里:定位该框架

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LmF5oul5LiN6L-H5oCd5b-1772e,size_20,color_FFFFFF,t_70,g_se,x_16

browser.get('https://qzone.qq.com/')
browser.maximize_window()time.sleep(2)
browser.switch_to.frame('login_frame')
a_tag = browser.find_element(By.ID,"switcher_plogin")
a_tag.click()

 接下来就是输入账号,密码,点击登录

userName_tag = browser.find_element(By.ID,'u')
password_tag =browser.find_element(By.ID,'p')
time.sleep(1)
userName_tag.send_keys('这里是QQ号')
time.sleep(1)
password_tag.send_keys('这里是密码')
time.sleep(1)
btn = browser.find_element(By.ID,'login_button')
btn.click()

 目前实现的效果图

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LmF5oul5LiN6L-H5oCd5b-1772e,size_20,color_FFFFFF,t_70,g_se,x_16

接下来实现的是,进入上边导航栏的好友页面,并定位好友搜索框,向搜索框传递要搜索的好友

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LmF5oul5LiN6L-H5oCd5b-1772e,size_20,color_FFFFFF,t_70,g_se,x_16

 :部分iframe没有id或name,用xpath定位

browser.switch_to.default_content()  # 登陆完后回到默认框架
time.sleep(1)
browser.find_element(By.XPATH,'//*[@id="aMyFriends"]').click()
time.sleep(1)
element1 =browser.find_element(By.XPATH,'//[@id="app_container"]/iframe')
browser.switch_to.frame(element1)
ff=browser.find_element(By.XPATH,'//*[@id="qz-search-box-input"]')
ff.send_keys(friend)
time.sleep(1)
browser.switch_to.default_content()
element2=browser.find_element(By.XPATH,'//[@id="app_container"]/iframe')
browser.switch_to.frame(element2)
browser.find_element(By.XPATH,'//*[@id="qz-search-box-result"]/li/div[2]/p').click()
time.sleep(1)
browser.find_element(By.XPATH,'//[@id="mecarewho_list"]/li/div[2]/div[2]/p/a').click()time.sleep(1)
#进入好友的页面

实现效果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LmF5oul5LiN6L-H5oCd5b-1772e,size_20,color_FFFFFF,t_70,g_se,x_16

 接下来就是进入好友留言板进行留言

注意的是留言框和发表按钮在不同的frame,发表在外面的一层,仔细查看

windows = browser.window_handles
browser.switch_to.window(windows[-1])
time.sleep(1)
browser.find_element(By.XPATH,'//*[@id="friendship_promote_layer"]/table/tbody/tr[1]/td[2]/a').click()
time.sleep(1)
#browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
browser.find_element(By.XPATH,'//*[@id="menuContainer"]/div/ul/li[4]').click()#或者  browser.find_element(By.XPATH,"//div[@id='layBackground']//li[@class = 'menu_item_334']//a[text()='留言板']").click()
time.sleep(3)#进入留言板
browser.switch_to.frame('tgb')
time.sleep(1)
browser.switch_to.frame('veditor1_Iframe')
time.sleep(1)
ff=browser.find_element(By.XPATH,'/html/body')#留言框
ff.send_keys(word)
browser.switch_to.default_content()
browser.switch_to.frame('tgb')
dd=browser.find_element(By.XPATH,'//*[@id="btnPostMsg"]')
dd.click()#确认发表按钮
print("留言成功!!!")
time.sleep(2)
browser.quit()

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LmF5oul5LiN6L-H5oCd5b-1772e,size_18,color_FFFFFF,t_70,g_se,x_16

 python小白,有错误的的地方还请多多指教

完整代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
from selenium.webdriver import ActionChains
from selenium.webdriver import ChromeOptions
# 请输入好友和留言内容
qq=input('输入自己的QQ号:')
friend = input('请输入好友:')
word = input('请输入留言内容:')
# 创建一个模拟浏览器对象,然后通过对象去操作浏览器
option=ChromeOptions()
option.add_argument('--headless')
option.add_argument('--disable-gpu')
s=Service("chromedriver.exe")
browser = webdriver.Chrome(service=s,options=option)
browser.get('https://qzone.qq.com/')
browser.maximize_window()
time.sleep(2)
 
browser.switch_to.frame('login_frame')
a_tag = browser.find_element(By.ID,"switcher_plogin")
a_tag.click()
userName_tag = browser.find_element(By.ID,'u')
password_tag =browser.find_element(By.ID,'p')
time.sleep(1)
userName_tag.send_keys(qq)
time.sleep(1)
password_tag.send_keys('此处输入自己的密码')
time.sleep(1)
btn = browser.find_element(By.ID,'login_button')
btn.click()
 
browser.switch_to.default_content()  # 登陆完后回到默认框架
time.sleep(1)
browser.find_element(By.XPATH,'//*[@id="aMyFriends"]').click()
time.sleep(1)
element1 =browser.find_element(By.XPATH,'//*[@id="app_container"]/iframe')
browser.switch_to.frame(element1)
ff=browser.find_element(By.XPATH,'//*[@id="qz-search-box-input"]')
ff.send_keys(friend)
time.sleep(1)
browser.switch_to.default_content()
element2 =browser.find_element(By.XPATH,'//*[@id="app_container"]/iframe')
browser.switch_to.frame(element2)
browser.find_element(By.XPATH,'//*[@id="qz-search-box-result"]/li/div[2]/p').click()#难点
time.sleep(1)#搜索ok
browser.find_element(By.XPATH,'//*[@id="mecarewho_list"]/li/div[2]/div[2]/p/a').click()
time.sleep(1)#进入好友
# 获得打开的第一个窗口句柄
windows = browser.window_handles
browser.switch_to.window(windows[-1])
time.sleep(1)
browser.find_element(By.XPATH,'//*[@id="friendship_promote_layer"]/table/tbody/tr[1]/td[2]/a').click()
time.sleep(1)
#browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
browser.find_element(By.XPATH,'//*[@id="menuContainer"]/div/ul/li[4]').click()#或者  browser.find_element(By.XPATH,"//div[@id='layBackground']//li[@class = 'menu_item_334']//a[text()='留言板']").click()
time.sleep(3)#进入留言板
browser.switch_to.frame('tgb')
time.sleep(1)
browser.switch_to.frame('veditor1_Iframe')
time.sleep(1)
ff=browser.find_element(By.XPATH,'/html/body')#留言框
ff.send_keys(word)
browser.switch_to.default_content()
browser.switch_to.frame('tgb')
dd=browser.find_element(By.XPATH,'//*[@id="btnPostMsg"]')
dd.click()#确认发表按钮
print("留言成功!!!")
time.sleep(2)
browser.quit()

到此这篇关于python使用selenium模拟浏览器进入好友QQ空间留言的文章就介绍到这了,更多相关python模拟浏览器selenium内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python制作一个恶意软件删除工具

    使用Python制作一个恶意软件删除工具

    这篇文章主要为大家详细介绍了如何使用Python制作一个恶意软件删除工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • Python实现批量添加视频文本水印

    Python实现批量添加视频文本水印

    这篇文章主要为大家详细介绍了如何基于PyQt5开发一个视频水印批量添加工具,旨在为多个视频文件添加文本水印,感兴趣的小伙伴可以参考一下
    2025-02-02
  • Python argparse库的基本使用步骤

    Python argparse库的基本使用步骤

    argparse库是python下的一个命令行参数管理库,支持int、str、float、bool、数组等5种基本数据类型,这篇文章主要介绍了Python argparse库的基本使用,需要的朋友可以参考下
    2022-07-07
  • 深入解答关于Python的11道基本面试题

    深入解答关于Python的11道基本面试题

    这篇文章主要介绍了关于Python的11道基本面试题,其中单引号,双引号,三引号的区别、Python的参数传递是值传递还是引用传递以及什么是lambda函数?它有什么好处?等一系列的基础面试题,文中给出了详细的解答,需要的朋友可以参考学习。
    2017-04-04
  • python np.arange 步长0.1的问题需要特别注意

    python np.arange 步长0.1的问题需要特别注意

    这篇文章主要介绍了python np.arange 步长0.1的问题需要特别注意,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python一句代码实现找出所有水仙花数的方法

    Python一句代码实现找出所有水仙花数的方法

    今天小编就为大家分享一篇Python一句代码实现找出所有水仙花数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python 中的Selenium异常处理实例代码

    Python 中的Selenium异常处理实例代码

    本文通过实例代码给大家介绍了Python 中的Selenium异常处理的相关知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • pandas pd.cut()与pd.qcut()的具体实现

    pandas pd.cut()与pd.qcut()的具体实现

    本文主要介绍了pandas pd.cut()与pd.qcut()的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 如何使用python的pillow库生成图像验证码

    如何使用python的pillow库生成图像验证码

    Pillow库是一个强大的Python图像处理库,用于生成图像验证码,通过初始化图像大小、验证码字符长度和字体大小,生成随机字符串、颜色、线和点,最终生成验证码图像
    2025-01-01
  • 详解Pymongo常用查询方法总结

    详解Pymongo常用查询方法总结

    这篇文章主要介绍了详解Pymongo常用查询方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01

最新评论