python贴吧顶贴_Python实现百度贴吧自动顶贴机

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

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】复制其中的内容。

tools1-1-700x195.pngwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

将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()

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云成为国内首家FinOps基金会顶级会员

11月24日,腾讯云正式宣布加入FinOps基金会,作为国内首家FinOps基金会顶级会员,腾讯云将联合FinOps基金会,全面推进对FinOps标准和最佳实践的贡献,为企业提供云财务管理的最佳解决方案。 “作为中国云原生技术和应用的领…

雷锋网独家解读:阿里云原生应用的布局与策略

简介: 阿里云一直希望可以做标准化的技术,跟社区的标准、行业的标准进行打通,这样对于阿里云的客户而言,简化了很多流程,其具备的能力也是未来的主流。 文章来源:雷锋网 作者:杨丽 原标题&am…

分久必合的Lindorm传奇

简介: 2009年,阿里巴巴首先提出用分布式架构替代传统商业数据库,成功用自主开源的AliSQL支撑双11数据洪流;2016年,为应对超大规模业务场景,阿里云开始自研分布式数据库。十余年间,阿里巴巴数据库…

低代码发展专访系列之一:低代码平台产品的使用者都是谁?

2019年开始,低代码爆火。有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为是企业管理模式的变革……有很多声音,社区讨论很热烈。CSDN随后展开低代码平台产品系列活动,包括低代码开发者认知度与应用…

进击的云原生,为开发者提供更多可能性

简介: 云原生为开发者提供了三方面便利:应用基础设施“零”维护、应用架构现代化“零”阻力、数字与物理世界“零”边界。 作者|易立 阿里云容器服务负责人 背景 ​ 云原生是云计算发展的必然产物,而云原生的持续生长也绝非偶然…

linux 分割pdf,PDFBox分割PDF文档

在前一章中,我们已经看到了如何将JavaScript添加到PDF文档。 现在来学习如何将给定的PDF文档分成多个文档。分割PDF文档中的页面可以使用Splitter类将给定的PDF文档分割为多个PDF文档。 该类用于将给定的PDF文档分成几个其他文档。以下是拆分现有PDF文档的步骤第1步…

python3 读取文本文件_python3读取文件最简单的办法

原博文 2020-06-11 09:14 −file open(test.txt) #读文件 s file.read() #把文件放到字符串里面 print(s) #输出字符串 ... 相关推荐 2019-12-09 20:32 − [TOC] # 1. 模块 ## 1.1 模块是什么? - 模块就是个 *Python* 文件 - 一个模块就是一个包含 *Python* 代码…

常用的几款工具让 Kubernetes 集群上的工作更容易

作者 | Addo Zhang来源 | 云原生指北其实日常工作中在集群上的操作也非常多,今天就来介绍我所使用的工具。kubectl-alias使用频率最高的工具,我自己稍微修改了一下,加入了 StatefulSet 的支持。这个是我的 https://github.com/addozhang/kube…

以太坊白皮书_以太坊发展历程

2013年年末,以太坊创始人Vitalik Buterin发布了以太坊初版白皮书,在全球的密码学货币社区陆续召集到一批认可以太坊理念的开发者,启动了项目。2014年2月,Vitalik在迈阿密比特币会议上第一次公布了以太坊项目,核心开发团…

来电科技:基于 Flink + Hologres 的实时数仓演进之路

简介: 本文将会讲述共享充电宝开创企业来电科技如何基于 Flink Hologres 构建统一数据服务加速的实时数仓 作者:陈健新,来电科技数据仓库开发工程师,目前专注于负责来电科技大数据平台离线和实时架构的整合。 深圳来电科技有限…

linux find 图片,linuxfind命令的介绍【图解】

作为一种分时的特数操作系统,Linux具备Windows和mac OS与众不同的操作界面和用户体验,虽然它并不是最主流的操作系统,但是它会作为操作系统而得到众多程序开发人员的青睐和熟知。find命令是操作系统环境下进行计算机功能调用的特殊命令&#…

移动云TeaTalk:这是一场云数据库技术的深度对话!

随着云计算的发展,数据库上云已经成为趋势,云数据库服务相对于传统数据库在架构、性能与安全等方面都存在着新的挑战。11月23日,移动云TeaTalk线上直播活动成功举办。本次活动以“云数据库技术创新研究与实践”为主题,邀请了移动云…

devc++源文件未编译_iOS 编译知识小结

简介源码到可执行文件流程编译器 编译流程预处理(preprocessor)词法分析(lexical anaysis)语法分析(semantic analysis)CodeGen生成汇编代码生成目标文件生成可执行文件Xcode中查看Clang编译.m文件信息 Xcode常见编译报错分析1. duplicate symbols报错2. symbol(s) not found f…

微信不再提供小程序打开App?借助H5为App引流的方式你必须知道!

简介: 2021年5月14日App开发者领域发布了一条重要消息:微信开放平台为了提升用户体验,将于2021年5月20日(后来延期到2021年5月27日)起不再提供“小程序打开App技术服务”,现在能够实现从微信打开App的方式只…

Gartner APM 魔力象限技术解读——全量存储? No! 按需存储?YES!

简介: 在云原生时代,充分利用边缘节点的计算和存储能力,结合冷热数据分离实现高性价比的数据价值探索已经逐渐成为 APM 领域的主流。 作者:夏明(涯海) 调用链记录了完整的请求状态及流转信息,是…

山石网科发布数据安全综合治理体系,覆盖数据全生命周期

编辑 | 宋慧 出品 | CSDN 云计算 11月24日,在“从一维到多维 ,让数据安全有章可循——山石网科数据安全综合治理体系发布会”上,山石网科面向全行业推出《数据安全治理白皮书》,并向企业侧正式发布全新的数据安全治理体系和数据安…

android 获取cpu使用率_超详细的zabbix监控windows磁盘IO及cpu使用率教程

概述今天主要介绍怎么用zabbix来监控windows CPU使用率及磁盘IO,下面一起来看看吧~1、监控Windows-CPU使用率1.1、创建模板在zabbix中,默认的模板不带CPU使用率的监控,为减少重复工作率,在template模板下创建一个模板然后模板直接…

深入理解领域驱动设计中的聚合

简介: 聚合模式是 DDD 的模式结构中较为难于理解的一个,也是 DDD 学习曲线中的一个关键障碍。合理地设计聚合,能清晰地表述业务一致性,也更容易带来清晰的实现,设计不合理的聚合,甚至在设计中没有聚合的概念…

jenkins linux 发邮件,linuxea:jenkins pipeline邮件提醒的两种方式(5)

可以通过Mailer Plugin和Email-ext plugin插件发送邮件在pipeline中可以在执行完成进行,通过直接的结果发送失败或者成功,也可以在执行阶段过程中,如果在那个阶段执行失败发送,想看第一中,只发送失败的详细结果&#x…

致青春!一键上线你们专属的云上毕业纪念册

简介: 毕业不说再见,青春不散场!在云端,在一起!在问答https://developer.aliyun.com/ask/321737的留言区域晒出自己「线上环境」部署的毕业纪念册,在6月30号18点之前点赞数前10可以获得我们送出的毕业大礼包…