开发这款小工具,我们需要做一些准备:

url.txt:多个需要顶起的帖子地址。

reply:多条随机回复的内容。

selenium:浏览器自动化测试框架

首先,我们先使用pip完成selenium的安装。

示例代码:

pip install -U selenium

接下来,我们添加对浏览器的支持,这里使用火狐浏览器。

对应Windows环境下的火狐浏览器,我们需要下载一个小程序:geckodriver.exe

把下载下来的压缩包解压缩,将exe文件直接放在项目文件夹中。

这里需要注意,如果火狐浏览器不是默认安装的话,需要将浏览器的安装路径添加到系统环境变量的Path中。

完成以上准备,我们就可以进行编程了。

一、导入必需的模块

示例代码:

'''想要学习Python?Python学习交流群:984632579满足你的需求,资料都已经上传群文件,可以自行下载!'''

from selenium import webdriver #导入网页内驱动模块

from selenium.webdriver.common.keys import Keys #导入按键类

from selenium.webdriver.common.action_chains import ActionChains #导入动作类

from random importchoicefrom time importsleepimport re

二、创建浏览器测试对象

示例代码:

profile = webdriver.FirefoxProfile(r'C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\nczl01ld.default')

browser= webdriver.Firefox(profile, timeout=300) #使用profile可以实现自动登录

三、定义将Cookie添加到测试对象的函数

Cookie的获取可以在火狐浏览器中打开贴吧地址后,按F12或右键菜单中选择【查看元素】,在打开的开发工具界面中,选择网络(NetWork),点开右侧收起的消息栏,点选【Cookie】复制其中的内容。

将Cookie内容存入变量,通过正则表达式获取字段并转换为字典后,添加到浏览器测试对象中。

示例代码:

defcookie():

cookies= '''BAIDUID = 012CCF2FAA983F21333F959FB4B2F4CF:FG=1;

BDORZ = FFFB88E999055A3F86630C64834BD6D0;

BDUSS = 9NcENVYWowcThKY3VUblVIZ3g...太长了此处省略一部分...S01U2AAABvKe1obyntaaG;

BIDUPSID = 23A4C6D0C2851099D66FBFDBA99EDF3B;

FP_UID = 0d8be11adc641cb5501f1e68270d8bea;

H_PS_PSSID = 1457_21116_22072;

MCITY = -131:;

PSINO = 1;

PSTM = 1506587758;'''cookiesList= re.findall(r'([\S\s]*?)=([\S\s]*?);', cookies)for cookie incookiesList:

ck= {'name': cookie[0].strip(), 'value': cookie[1].strip()}

browser.add_cookie(ck)#添加cookie到浏览器测试对象

四、定义随机获取评论内容的函数

示例代码:

defget_content():

file= open('reply.txt', encoding='utf-8').readlines() #读取所有评论

return choice(file).strip() #随机获取一行评论并返回

五、定义写入评论并提交的函数

示例代码:defreply():

content= get_content() #获取评论内容

js = "document.getElementById('ueditor_replace').innerHTML='%s'" % content #编写js脚本

browser.execute_script(js) #执行js脚本

browser.find_element_by_css_selector('.poster_submit').click() #点击发表按钮

六、定义主程序函数

defmain():

count=0for url in open('url.txt', encoding='utf-8').readlines(): #逐行读取url文件

count += 1

if count >= 5: #从url文件中的第5个地址开始回复

browser.get(url) #打开地址

sleep(10) #避免回复过快,地址打开后等待10秒钟。

cookie() #添加cookie

browser.execute_script("window.scrollTo(0,document.body.scrollHeight)") #滚动到页面底部

reply() #写入回复内容并提交

sleep(5) #等待完成提交

ActionChains(browser).key_down(Keys.CONTROL).send_keys("w").key_up(Keys.CONTROL).perform() #关闭网页

完成以上代码之后,我们运行主程序,就能够自动回复了。

注意:请申请小号进行测试,以免封号。

示例代码:

if __name__ == '__main__':

main()

完整代码

from selenium import webdriver #导入网页内驱动模块

from selenium.webdriver.common.keys import Keys #导入按键类

from selenium.webdriver.common.action_chains import ActionChains #导入动作类

from random importchoicefrom time importsleepimportre'''想要学习Python?Python学习交流群:984632579满足你的需求,资料都已经上传群文件,可以自行下载!'''profile= webdriver.FirefoxProfile(r'C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\nczl01ld.default')

browser= webdriver.Firefox(profile, timeout=300) #使用profile可以实现自动登录

defcookie():

cookies= '''BAIDUID = 012CCF2FAA983F21333F959FB4B2F4CF:FG=1;

BDORZ = FFFB88E999055A3F86630C64834BD6D0;

BDUSS = 9NcENVYWowcThKY3VUblVIZ3g...太长了此处省略一部分...S01U2AAABvKe1obyntaaG;

BIDUPSID = 23A4C6D0C2851099D66FBFDBA99EDF3B;

FP_UID = 0d8be11adc641cb5501f1e68270d8bea;

H_PS_PSSID = 1457_21116_22072;

MCITY = -131:;

PSINO = 1;

PSTM = 1506587758;'''cookiesList= re.findall(r'([\S\s]*?)=([\S\s]*?);', cookies)for cookie incookiesList:

ck= {'name': cookie[0].strip(), 'value': cookie[1].strip()}

browser.add_cookie(ck)#添加cookie到浏览器测试对象

defget_content():

file= open('reply.txt', encoding='utf-8').readlines() #读取所有评论

return choice(file).strip() #随机获取一行评论并返回

defreply():

content= get_content() #获取评论内容

js = "document.getElementById('ueditor_replace').innerHTML='%s'" % content #编写js脚本

browser.execute_script(js) #执行js脚本

browser.find_element_by_css_selector('.poster_submit').click() #点击发表按钮

defmain():

count=0for url in open('url.txt', encoding='utf-8').readlines(): #逐行读取url文件

count += 1

if count >= 5: #从url文件中的第5个地址开始回复

browser.get(url) #打开地址

sleep(10) #避免回复过快,地址打开后等待10秒钟。

cookie() #添加cookie

browser.execute_script("window.scrollTo(0,document.body.scrollHeight)") #滚动到页面底部

reply() #写入回复内容并提交

sleep(5) #等待完成提交

ActionChains(browser).key_down(Keys.CONTROL).send_keys("w").key_up(Keys.CONTROL).perform() #关闭网页

if __name__ == '__main__':

main()

python贴吧顶贴_Python实现百度贴吧自动顶贴机相关推荐

  1. python贴吧自动评论软件手机版_python实现百度贴吧自动顶贴机器人

    python顶贴机器人视频演示如下 测试版本: python 3.7 64位 火狐浏览器firefox 83.0 (64 位) selenium 3.141.0 文件目录结构如下图: 开发这款小工具, ...

  2. python打开网址搜索关键字_Python实验:百度搜索关键字自动打开相关URL

    #! python # coding: utf-8 # python实现百度搜索关键字,并依次用浏览器打开前五个搜索结果 ## ##Beautiful Soup 是一个模块,用于从HTML 页面中提取 ...

  3. python运行界面英文翻译_python使用百度api翻译中英文

    python使用百度api翻译中英文 写程序取变量名的时候,常常需要翻译单词,或者将中文翻译成英语.有道词典,必应词典都很好,可是...命令行习惯了还是觉得用在cmd里面调出程序使用起来也许会更爽.于 ...

  4. python识别英语语音翻译器_Python结合百度语音识别实现实时翻译软件的实现

    一.所需库安装 pip install PyAudio pip install SpeechRecognition pip install baidu-aip pip install Wave pip ...

  5. python获取某地铁站经纬度_python通过百度地图API获取某地址的经纬度详解

    前言 这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的,本文将给大家详细的介绍关于python通过百度地图A ...

  6. python获取某地铁站经纬度_python基于百度地图获取指定的经纬度信息

    在实际做项目的时候经常会遇上需要使用到某个位置经纬度的情况,这个位置的经纬度经常又是没有的,那么就需要基于公开的数据去获取了,这里基于百度地图提供的API来完成指定位置经纬度数据的获取,实现很简单,主 ...

  7. python连不上树莓派_Python实现树莓派WiFi断线自动重连

    实现 WiFi 断线自动重连.原理是用 Python 监测网络是否断线,如果断线则重启网络服务. 1.Python 代码 autowifi.py,放在 /home/pi 目录下: #!/usr/bin ...

  8. python选择题库和答案_python根据题库答案自动答题

    学习python有一段时间了,一直没有一个完整的项目.这次总算完成了一个小的项目-自动打开网页答题,虽然还不是很完美,也足够用了. 分享下过程. 首先理清思路:解析网页-->提取题目--> ...

  9. python快速排名seo代码_python打造seo必备工具-自动查询排名

    因为工作需要,利用业余时间开发的,可以查询百度排名+360排名工具,附上代码. #360搜索排名查询 # -*- coding=utf-8 -*- import requests from lxml ...

  10. python打开浏览器全屏_Python+Selenium自动化——浏览器启动自动全屏配置

    ##直接上代码吧 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait opti ...

最新文章

  1. 打造一个实用的Ubuntu Linux
  2. Spring选择哪种注入方式
  3. 更改printk打印级别【转】
  4. 不要“个人英雄主义”,物联网安全共同体更稳固
  5. Java 8 日期和时间解读
  6. 【Linux系统编程学习】 文件描述符
  7. deeplearning4j
  8. 自定义python框架_Python web 框架Sanic 学习: 自定义 Exception
  9. 1.1.0-简介-P4-一致性、2PC和3PC
  10. 华为HarmonyOS 2.0全面升级,构建中国软件的“根”!
  11. Atitit sql的执行功能 目录 1. 主要流程 1 1.1. 获取conn,执行sql取得结果, 1 1.2. Orm类的执行(hb mybatis为例 1 2. 常见sql执行框架与类库 1
  12. memcache、redis
  13. 回归模型1:优化的灰色模型matlab实现
  14. 富媒体超级短信(多媒体短信、视频短信)亮点、应用场景
  15. it行业发展前景怎么样?互联网寒潮来袭是真的吗?
  16. GAMES101笔记_Lec01_计算机图形学概述 Overview of Computer Graphics
  17. 高性价比降噪耳机推荐,2023年降噪耳机排行榜推荐
  18. 存储技术(一)-基本概念和技术发展
  19. CentOS 6.8 数据库安装5.5.32
  20. 记忆枕产品上市如何通过新闻来打造品牌曝光量?

热门文章

  1. 一款基于 Python 语言的 Linux 资源监视器!
  2. win10虚拟服务器安装xp,win10 Hyper-V 安装winxp虚拟机
  3. keras-yolo3-master使用记录
  4. 推荐一款能够将爱奇艺qsv、腾讯qlv、优酷kux完美转换成mp4的三合一全能格式转换器
  5. JDK 的下载与安装(非常详细!)
  6. java jcmd,jcmd命令用法
  7. BOS v2.0后台管理系统界面通用解决方案
  8. 物联网技术概论:第2章
  9. Unity粒子特效系列-闪星星的宝箱
  10. python wordcloud 对电影《我不是潘金莲》制作词云