背景:有的论坛设置了账号权限,只有账号达到了某个权限以后才能访问某个特定版块。这对于低级别的用户不是很友好,我也是其中一员,还好论坛有灌水区,可以随意灌水提升账号积分,但是用人工一条条灌水太费时间,而且系统也设置了小时内最多5条帖子,15秒之类不能继续回复这样的限制。而如果采用webdriver自动发帖回帖,就会很容易了,只要让webdriver跑一段时间,积分就上去了。我就是用这种方法快速达到了高级会员的级别,可以愉快的浏览之前无法浏览的版块内容了。
Python版本3.7.4
话不多少,直接上代码。
#coding=utf-8
from selenium import webdriver
import time
import os
#我使用的是74.0版本的火狐,算很新的版本的火狐了,网上看要下载比较旧版本的浏览器,其实没必要,只要下载最新的geckodriver.exe就可以了。
os.environ["webdriver.firefox.driver"]="C:\\Program Files\\Mozilla Firefox\\firefox.exe"
#使用其他浏览器也可以到https://pypi.org/project/selenium/网站上下载对应的drirver文件。
driver=webdriver.Firefox(executable_path='D:\\PycharmProjects\\heei3k\\venv\\geckodriver')
class bbs():
def __init__(self):
#论坛设置了登录动态验证码,所以就不写登录的代码了,直接等待30秒手工输入,后面的就让电脑自动完成了
#为了保护个人隐私,我这里论坛并不是我原来使用的论坛,请不要直接复制代码使用。
driver.get("http://bbs.tgbus.com/forum-44-1.html")
time.sleep(30)
#这里要手工输入论坛账号和密码
#发水帖的函数
def sendwater(self):
#因为该论坛存在灌水区,所以才用此方法快速升级账号,如果论坛不允许灌水,请不要使用此方法,以免账号被封。
driver.get("http://bbs.tgbus.com/forum-44-1.html")
driver.find_element_by_id('subject').clear()
driver.find_element_by_id('subject').send_keys("水水更健康")
driver.find_element_by_id('fastpostmessage').clear()
driver.find_element_by_id('fastpostmessage').send_keys("水水更健康")
driver.find_element_by_id('fastpostsubmit').click()
#回复水帖的函数
def sendresponse(self):
#driver.get("http://bbs.tgbus.com/thread-11562-1-1.html") #我的帖子,可以在自己的帖子回帖,也可以在其他人的帖子上回帖
driver.get("http://bbs.tgbus.com/thread-11594-1-1.html") #别人的帖子
driver.find_element_by_id('fastpostmessage').clear()
driver.find_element_by_id('fastpostmessage').send_keys("水水更健康")
driver.find_element_by_id('fastpostsubmit').click()
Bbs=bbs()
for x in range(20):
Bbs.sendresponse()
#这里的15秒是论坛限制,请根据实际需要修改
time.sleep(15)
driver.quit()
希望能够帮助到大家。有什么不懂或者疑问的可以直接联系我,大家的回复我也能及时看到。