无聊日常--python+selenium+chromedriver 实现QQ空间评论自动删除

博客内容用于技术交流学习,读者通过学习本博客内容后进行的任何违法违规操作与本人无关,特此声明。

我最初有写这个项目的想法是在18年11月底(好像是),当时我们学校的表白墙遭到了麦片的账号骚扰——不断在评论区刷麦片评论,利用表白墙的流量“拉客”。
“路见不平一声吼啊~”(破音)
但是当时学习任务紧没有太多时间,因此搁置了很久。最初是想用splash实现,但是程序有BUG,一直没有按预期运行,拖着拖着就到了现在。当然,写这篇博客也是写出来一周后了。
废话少说,我来讲讲我这个项目完成思路吧,涉及到垃圾语句的地方轻喷。(虽然在csdn评论的人还是比较少的)

对了,结论放这里。程序稳定性不好,主要因为加载说说的程序会因为网速等原因在一定时间内获取一定数量说说,而进行后一步删除操作时,若又有新的说说加载出来,则会造成操作失败。
之后通过进一步学习以后我再来优化一下吧~

1、环境:python3.7+selenium+chromdriver+chrome 72

chromdriver具体版本我忘了,但找到篇博客,里面有版本对应:
https://blog.csdn.net/yoyocat915/article/details/80580066
chromedriver下载地址:http://npm.taobao.org/mirrors/chromedriver/

2、程序思路:

登录QQ空间 —— 抓取评论 —— 判断是否存在匹配评论 —— 若存在,找到一条删除后重新进入判断循环(删除一条评论以后,网站元素的一系列信息就变化了,此时继续删除其他匹配评论就失去了意义会报错。) —— 一定时间结束循环等待下次执行

类定义以及声明的一些全局变量:

from selenium import webdriver
from selenium.common.exceptions import *
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import  *
import time
import re
from selenium.webdriver.support.wait import WebDriverWait
# 全局变量初始化
url = "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.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&pt_qr_app=手机QQ空间&pt_qr_link=https%3A//z.qzone.com/download.html&self_regurl=https%3A//qzs.qq.com/qzone/v6/reg/index.html&pt_qr_help_link=https%3A//z.qzone.com/download.html&pt_no_auth=0"
switchbtn_id = 'switcher_plogin'
username_id = 'u'
password_id = 'p'
loginbtn_id = 'login_button'
comment_class = 'comments-content'
deletebtn_class = 'act-delete'
ackbtn_class = re.compile("qz_dialog_layer_btn qz_dialog_layer_sub")
ackbtn_xpath = r"//a[@class='qz_dialog_layer_btn qz_dialog_layer_sub']"
# selenium初始化
caps = webdriver.DesiredCapabilities().CHROME
options = Options()
# options.add_argument("-headless")  # 此处设置是否为headless模式
prefs={
   
    'profile.default_content_setting_values': {
   
        'images': 2,
    }
}
# options.add_experimental_option('prefs',prefs) # 限制图片、js加载,
driver = webdriver.Chrome(chrome_options=options,executable_path="C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")

# 用于完成对一条评论删除后,一次跳出多个循环
class BreakLoopException(Exception):
    pass
    
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值