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

在开始学爬虫时,学习了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

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

第14.15节 爬虫实战1:使用Python和selenium实现csdn博文点赞的更多相关文章

  1. 第14.16节 爬虫实战2:赠人玫瑰,手留余香! request+BeautifulSoup实现csdn博文自动点赞

    写在前面:本文仅供参考学习,请勿用作它途,禁止转载! 在<第14.14节 爬虫实战准备:csdn博文点赞过程http请求和响应信息分析>老猿分析了csdn博文点赞处理的http请求和响应报 ...

  2. 第14.18节 爬虫实战4: request+BeautifulSoup+os实现利用公众服务Wi-Fi作为公网IP动态地址池

    写在前面:本文相关方法为作者独创,仅供参考学习爬虫技术使用,请勿用作它途,禁止转载! 一. 引言 在爬虫爬取网页时,有时候希望不同的时候能以不同公网地址去爬取相关的内容,去网上购买地址资源池是大部分人 ...

  3. 第14.17节 爬虫实战3: request+BeautifulSoup实现自动获取本机上网公网地址

    一. 引言 一般情况下,没有特殊要求的客户,宽带服务提供商提供的上网服务,给客户家庭宽带分配的地址都是一个宽带服务提供商的内部服务地址,真正对外访问时通过NAT进行映射到一个公网地址,如果我们想确认自 ...

  4. 第14.14节 爬虫实战准备:csdn博文点赞过程http请求和响应信息分析

    如果要对csdn博文点赞,首先要登录CSDN,然后打开一篇需要点赞的文章,如<第14.1节 通过Python爬取网页的学习步骤>按<第14.3节 使用google浏览器获取网站访问的 ...

  5. 爬虫实战(三) 用Python爬取拉勾网

    目录 0.前言 1.初始化 2.爬取数据 3.保存数据 4.数据可视化 5.大功告成 0.前言 最近,博主面临着选方向的困难(唉,选择困难症患者 >﹏<),所以希望了解一下目前不同岗位的就 ...

  6. 爬虫实战(二) 用Python爬取网易云歌单

    最近,博主喜欢上了听歌,但是又苦于找不到好音乐,于是就打算到网易云的歌单中逛逛 本着 "用技术改变生活" 的想法,于是便想着写一个爬虫爬取网易云的歌单,并按播放量自动进行排序 这篇 ...

  7. 爬虫实战(一) 用Python爬取百度百科

    最近博主遇到这样一个需求:当用户输入一个词语时,返回这个词语的解释 我的第一个想法是做一个数据库,把常用的词语和词语的解释放到数据库里面,当用户查询时直接读取数据库结果 但是自己又没有心思做这样一个数 ...

  8. 爬虫实战【10】利用Selenium自动登陆京东签到领金币

    今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币. 如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前 ...

  9. 第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解

    第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解 封装模块 #!/usr/bin/env python # -*- coding: utf- ...

随机推荐

  1. fcntl函数用法——操纵文件描述符状态

    fcntl函数:操纵文件描述符,改变已经打开的文件的属性int fcntl(int fd, int cmd, ... //arg  );cmd选项:一.复制文件描述符:F_DUPFD二.更改设置文件描 ...

  2. WSL2:我在原生的Win10玩转Linux系统

    原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」.一群同频者,一起成长,一起精进,打破认知的局限性. WSL2:我在原生的Win10玩转Li ...

  3. java服务器部署开源项目(若依)

    1准备工作 (1)阿里云 centos_8_0_x64_20G_alibase_20200218.vhd [root@iZ2zeeqw5fxmm9zagf439aZ ~]# cat /etc/redh ...

  4. MiniCat:手写Http服务器

    minicat 项目介绍 已实现http基础协议.参数接受.servlet.filter.cookie.多文件上传等.支持NIO. 一款轻量化Http服务器.支持bio.nio两种模式.归属Coody ...

  5. 面经手册 · 第18篇《AQS 共享锁,Semaphore、CountDownLatch,听说数据库连接池可以用到!》

    作者:小傅哥 博客:https://bugstack.cn Github:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀.分享.成长,让自己和他人都能有 ...

  6. 理解 ASP.NET Core: 验证

    ASP.NET Core 验证 通常在应用程序中,安全分为前后两个步骤:验证和授权.验证负责检查当前请求者的身份,而授权则根据上一步得到的身份决定当前请求者是否能够访问期望的资源. 既然安全从验证开始 ...

  7. 算法题目:北邮python 3-C 排队前进

    一道python作业的题目,比较有意思,题目如下: 题目描述 有 n 个人排队向一个方向前进,他们前进的速度并不一定相同. 最开始即 t=0 时,每个人的位置并不相同.可以把他们放在数轴上,设他们前进 ...

  8. Java web项目JXl导出excel,(从eclipse上移动到tomact服务器上,之路径更改)

    我用的是jxl导出excel,比较简单,最开始我是固定路径不能选择,很局限,后来改了,而且固定路径当把项目放在服务器上时,路径不可行. 在网上各位大神的帮助成功设置响应头,并且可选保存路径. 1.前端 ...

  9. HotSpot类模型之ArrayKlass

    上一篇分析了 HotSpot类模型之InstanceKlass ,这次主要分析表示java数组类型的C++类. 1.ArrayKlass类 ArrayKlass继承自Klass,是所有数组类的抽象基类 ...

  10. FL Slayer合成器功能之顶部组件介绍

    本章节采用图文结合的方式给大家介绍电音编曲软件--FL Studio中的插件FL Slayer合成器中的顶部组件,它是电吉他模拟合成器,感兴趣的朋友可以一起沟通学习交流. FL Slayer(杀手)合 ...