python自动回帖,批量回帖
最近比较忙, 没有更新博客,请大家见谅!!
今天看到有一个网站(第六夜漫画)在批量回帖推广,感觉有些不对,很多平台上都有他的回帖,隔几天就会批量出现。觉得如果是人为回帖会很累、很乏味、很枯燥,所以我个人觉得他一定是使用软件进行回帖的。大家想不想要呢…
下边给大家模仿一个批量回帖的操作
材料技术准备
网站:自己随便找(这里以头条为例)
技术:python
工具:可以开启并正常使用的PC一台
人员:一名(男女不限)
- 刨析目标站
1.回帖首先需要登录,这是必须的
2.打开需要回帖的帖子
3.找到回帖输入框
4.填写内容
5.点击提交
废话不多说 - 开干 以下是干货
方法有很多种,这里使用的是模拟人使用浏览器(浏览器控制)方式完成回帖
下载chromedriver
下载chromedriver。要对应本地Google Chrome的版本
将chromedriver放在python目录
找到你本地python安装目录,粘贴复制就行
导包
没有的 请自行安装
# selenium 是自动化测试工具 可以控制浏览器
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import json
import random
# 汉字转拼音
import pypinyin
公共类
# 汉字转拼音 (去掉style=pypinyin.NORMAL 返回带声调拼音)
def toPinyin(word):
s = ''
for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
s += ''.join(i)
ss = s.replace("(", "(").replace(")", ")").replace(":", ":").replace("。", ".").replace(",", ",").replace("!", "!").replace("、", "").replace("【", "[").replace("】", "]")
return ss[0:66]
# 随机数(用来每一步停顿随机时间)
def _sleep():
return random.randint(5,20)
登录
使用代码控制浏览器 完成登录(人为登录 验证)
_options = Options()
# _options.add_argument('--headless') # 使用有界面谷歌浏览器模式
_options.add_argument('--disable-gpu')
_options.add_argument('--no-sandbox')
_path = 'C:/Users/Administrator/AppData/Local/Programs/Python/Python38-32/chromedriver_84.exe'
driver = webdriver.Chrome(options=_options, executable_path=_path)
# =>=>=>=>=> 用户密码登录,有时必须人为验证,所以直接换成 有界面的浏览器 扫码登录 <=<=<=<=<
# 打开头条任意链接
driver.get('https://www.toutiao.com/search/?keyword=%E6%96%97%E7%A0%B4%E8%8B%8D%E7%A9%B9%E6%BC%AB%E7%94%BB')
# 等待3秒
time.sleep(3)
# 点击登录按钮
driver.find_elements_by_xpath('//div[@class="nav-login"]/a')[0].click()
time.sleep(1)
# 点击微信扫码登录
driver.find_elements_by_xpath('//*[@id="login-platform-footer"]/div[4]')[0].click()
# 人为开始登录 验证 (请15秒内完成)
time.sleep(15)
搜索关键词
# 打开 xxx关键词
driver.get(f"https://www.toutiao.com/search/?keyword=xxx")
time.sleep(_sleep())
抓取帖子
mList = []
sections_a = driver.find_elements_by_xpath('//div[@class="sections"]/div/div/div/div/div/div/a')
for link in sections_a:
_url = ''
url = link.get_attribute('href')
if url.startswith("http"):
_url = url
else:
_url = f"https://www.toutiao.com{url}"
if _url not in mList:
mList.append(_url)
# 最多抓起前10条
if len(mList) >= 10:break
开始批量回帖
for url in mList:
# 打开帖子
driver.get(url)
time.sleep(_sleep())
try:
# 去 评论
driver.find_elements_by_xpath('//a[@class="share-count"]')[0].click()
except Exception as e:
print(f'去评论失败 => {e}')
time.sleep(1)
ss = """我是回帖内容
我是回帖内容
"""
try:
# 回帖输入框
driver.find_element_by_xpath('//*[@id="comment"]/div[2]/div/div[2]/div[1]/textarea').clear()
driver.find_element_by_xpath('//*[@id="comment"]/div[2]/div/div[2]/div[1]/textarea').send_keys(ss)
time.sleep(_sleep())
# 提交
driver.find_element_by_xpath('//*[@class="c-submit"]').click()
comment_number += 1
print(f'已完成第 {comment_number} 次评论')
count += 1
# 歇一会儿
if count >= random.randint(80,100):
print(f'一口气评论 {count} 次,先歇一会...')
count = 0
driver.get(mjson['url'])
time.sleep(random.randint(80,100))
except Exception as e:
print(f'评论失败 => {e}')
time.sleep(_sleep())
print(f"xxx => 回帖完毕...")
退出
#退出浏览
driver.quit()
说明
- 每一步都等待一下,具体时间自定
目的:1、浏览器加载需要时间;2、尽量模仿人操作 - 以上代码在使用时 注意缩进
- 以上代码缺少变量,请自行添加
- 以上代码是一个关键字前10条帖子的回帖
想完成批量关键字回帖请自行添加 - 以上代码很全,按顺序拼接就可使用,不准备发布完整代码
毕竟代码回帖属于违规操作,这里只谈技术 - 欢迎留言讨论
打一下广告,毕竟是他给的灵感 才给大家带来福利
喜欢漫画的小伙伴们可以去看看:第六夜漫画