写在前面:本文仅供参考学习,请勿用作它途,禁止转载!

在开始学爬虫时,学习了csdn博客专家(id:明天依旧可好 | 柯尊柏)《实战项目二:实现CSDN自动点赞》的文章,文章介绍了通过Python和selenium模块实现csdn指定文章点赞的过程,老猿学习后,照葫芦画瓢自己实践了一番,发现文章介绍内容完全可行,如下5个点如果能进一步完善会更好:

  1. 文章中给定的《【谷歌驱动器下载】》在老猿所在的各种网络环境都无法打开,后来老猿通过网上找到博文《chromedriver.exe下载(作者:csdn菜鸟的成长记)》介绍的下载地址成功下载;

  2. 某些文章点赞不成功,老猿发现是因为定位点赞按钮的html元素的css类的值除了原文《实战项目二:实现CSDN自动点赞》给出的’ low-height hover-box btn-like ‘,还有少数情况会使用’ long-height hover-box btn-like ',其实通过点赞按钮的title属性值去判断更好;

  3. 《实战项目二:实现CSDN自动点赞》原文是通过给出登录用户名和密码登录,而第三方登录这种方式存在问题,为了解决这个问题,老猿在实现时没有采用这种方式,而是直接手工登录,登录完成之后再进行点赞;

  4. 《实战项目二:实现CSDN自动点赞》原文是固定url点赞,老猿是采用将要点赞的url地址写入一个c:\temp\urllist.txt来点赞,这样可以随时变更点赞的url,并支持批量点赞;

另外请注意:

1、这种基于selenium自动测试软件测试的模式,服务端是会检测到,会对登录的账号进行额外的校验如短信校验,因此使用并不方便,但这种模式本来就是这样的,无法回避,只有采取其他方法才能回避;

2、下载的谷歌驱动与浏览器版本之间有配套关系,必须确保对应才能正常运行,二者的对应关系请参见《chromedriver.exe下载(作者:csdn菜鸟的成长记)》。

关于这种方式的实现过程老猿不再详细介绍,大家参考csdn博客专家(id:明天依旧可好 | 柯尊柏)《实战项目二:实现CSDN自动点赞》的原文即可。在此老猿提供自己调整后的完整代码,大家自己对照原文及老猿前面介绍的第2、3、4、5点的调整去理解和实践即可。

老猿实现的通过Python+selenium的csdn博文点赞程序完整代码如下:

#coding:utf-8
#使用selenium的webdriver实现csdn博文点赞
import time
import fileinput from selenium import webdriver def openfilesurl(filename): driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.get("https://blog.csdn.net/LaoYuanPython")
lineno=0
success=0
fail = 0
input("等待浏览器初始化并手工登陆完成,确认登陆后按任意键继续!")
for line in fileinput.input(filename):
lineno += 1
urlline = line.strip(' \r\n')
if len(urlline)<10:
lineinfo=f"{lineno} {urlline}:长度不够,忽略\n"
continue
driver.get(urlline)
time.sleep(1)
try:driver.find_element_by_xpath("//button[@class=' long-height hover-box btn-like ']").click()
except Exception as e:
try:driver.find_element_by_xpath("//button[@class=' low-height hover-box btn-like ']").click()
except Exception as e:
fail+=1
lineinfo=f"{lineno} {urlline}:点赞失败,总计点赞失败{fail}个,点赞成功{success}个\n"#失败原因:\n{e}"
print(lineinfo)
else:
success+=1
lineinfo=f"{lineno} {urlline}:点赞成功,总计点赞成功{success}个,点赞代码low-height hover-box btn-like\n"
print(lineinfo)
else:
success+=1
lineinfo=f"{lineno} {urlline}:点赞成功,总计点赞成功{success}个,点赞代码long-height hover-box btn-like\n"
print(lineinfo) info = f"任务结束,总计成功点赞{success}个、点赞失败{fail}个"
print(info)
driver.close() def main(): filename=input("请输入保存的要访问网址列表的文件,没有输入则默认为'c:\\temp\\urllist.txt':\n").strip(' \r\n')
if len(filename)==0:filename=r'c:\temp\urllist.txt' openfilesurl(filename) main()

本节参考《实战项目二:实现CSDN自动点赞》的基础上介绍了使用Python+selenium的csdn博文点赞实现,并提供了完整的点赞代码,再次感谢csdn博客专家“明天依旧可好 | 柯尊柏”的无私分享。可以看到这种方式还是存在先天不足,不是一个真正的爬虫程序,在下一篇文章《第14.16节 爬虫实战2:赠人玫瑰,手留余香! request+BeautifulSoup实现csdn博文自动点赞》中老猿将介绍一种完全模拟浏览器让服务器无法识别的点赞实现方式。

老猿Python,跟老猿学Python!

博客地址:https://blog.csdn.net/LaoYuanPython


老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

请大家多多支持,点赞、评论和加关注!谢谢!

最新文章

  1. ABP(现代ASP.NET样板开发框架)系列之10、ABP领域层——实体
  2. [面试] Design Questions
  3. js点击按钮倒计时setTimeout和setInterval
  4. jQuery Mobile入门教程
  5. (转) MFC的入口点与消息循环,消息映射
  6. select框默认样式去除(ie中隐藏默认下拉图标)
  7. include()、include_once()与require()、require_once()的异同点
  8. linux shell中的特殊符号
  9. JS计算两个日期时间之差之天数不正确
  10. 我的TDD实践---UnitTest单元测试
  11. log4j配置详解[http://www.iteye.com/topic/378077]
  12. Python3基础 global关键字 使函数的局部变量升格为全局变量
  13. 微软正式开源Blazor ,将.NET带回到浏览器
  14. jvm理论-字节码指令案例
  15. canvas(四) Gradient- demo
  16. 浅谈 Java JPDA
  17. 自建yum源解决Ceph搭建过程中从官网取包慢的问题
  18. 随机数模块 random模块(1)
  19. Scala--映射和元组
  20. libxml2 使用教程【转】

热门文章

  1. 知识补充之Django信号量
  2. 剑指Offer-Python(21-25)
  3. 聊一聊sockmap 以及ebpf
  4. Linux 中deb文件选择安装路径
  5. 使用SpringBoot进行优雅的数据验证
  6. 企业级工作流解决方案(十二)--集成Abp和ng-alain--用户身份认证与权限验证
  7. 这些Servlet知识你一定要知道,金九银十大厂面试官都爱问
  8. 面试腾讯,字节跳动首先要掌握的Java多线程,一次帮你全掌握!
  9. Folx中与下载相关的参数如何设置
  10. CorelDRAW常用工具之橡皮擦工具