selenium篇之半自动发帖机

本文介绍了使用selenium进行网页自动化测试,构建一个半自动发帖机的过程。通过模拟登录、获取论坛帖子链接、预设评论、随机间隔时间提交,实现论坛积分提升。虽然selenium速度慢且资源消耗大,但在处理复杂网页和反爬策略时展现出优势。文章还提出改进方向,探讨自动化评论生成的可能性。
摘要由CSDN通过智能技术生成

前言

selenium不用多说,是一个非常强大的用于爬虫、网页自动化测试的库。在我看来,对比于一般的基于http/https协议的爬虫来说,其优势可以分为以下两点:

1.不需要了解协议的具体实现细节,这也就避免了对部分加密参数繁琐的解密过程。
2.因为selenium是模拟真实用户的访问,可以有效避免部分网站采取的反爬、或网页优化策略导致爬虫制作难度、成本提高(如字体加密、懒加载等)的问题。

但其缺点也很致命,需要更多的资源、速度较慢。

综上所述,对于一般网站而言http/https协议的爬虫有着很大的优势,但对于不熟悉协议的新手或者网站爬取难度较大的情况下,使用selenium来操作无疑是一个省时省力的最佳选择。

需求分析

某论坛阅读帖子需要较高等级,而等级可以通过发言得到积分来提升,但发言要有间隔才能有效获取积分,所以需要设置多个帖子的定时发送,并预设评论,从而有效的获取积分。

主要工作

0X00 论坛登录

使用谷歌浏览器进行操作,其中一个主要原因是利用谷歌浏览器提供的无头模式,这样可以不影响正常工作。

chrome_options.add_argument('--headless')

首次访问论坛时,必须登录账号,并保持会话。
1.填写表单并提交
2.获取cookie并保存到本地,其主要目的是,后台长时间的等待指令执行时可以先关闭浏览器对象节约资源,并在启动一个新的浏览器后,将cookie填入实现免登录。
相关的cookie保存于读取代码如下

 	# 保存cookie操作
    def save_cookie(self):
        with open('cookies', 'wb') as f_obj:
            pickle.dump(obj=self.__driver.get_cookies(), <
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是用 PythonSelenium 实现百度贴吧自动发帖的步骤: 1. 安装 Selenium: ``` pip install selenium ``` 2. 下载 Chrome 浏览器和对应版本的 ChromeDriver。 3. 创建一个 Python 文件,导入必要的库: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys import time ``` 4. 创建一个 ChromeDriver 实例: ```python driver = webdriver.Chrome('chromedriver的路径') ``` 5. 打开百度贴吧并登录: ```python driver.get("https://tieba.baidu.com/") login_button = driver.find_element_by_class_name("u_login") login_button.click() driver.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn").click() driver.find_element_by_id("TANGRAM__PSP_10__userName").send_keys("你的百度账号") driver.find_element_by_id("TANGRAM__PSP_10__password").send_keys("你的百度密码") driver.find_element_by_id("TANGRAM__PSP_10__submit").click() time.sleep(3) ``` 6. 进入指定的贴吧并点击发帖按钮: ```python driver.get("https://tieba.baidu.com/f?kw=贴吧名称") driver.find_element_by_class_name("j_post_thread").click() time.sleep(3) ``` 7. 填写帖子标题和内容并发布: ```python driver.find_element_by_name("title").send_keys("帖子标题") driver.switch_to.frame("ueditor_0") driver.find_element_by_tag_name("body").send_keys("帖子内容") driver.switch_to.default_content() driver.find_element_by_class_name("j_submit_post").click() time.sleep(3) ``` 8. 关闭浏览器: ```python driver.quit() ``` 这样就完成了用 Selenium 实现百度贴吧自动发帖的操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值