selenium+webdriver实现自动化登陆并评论csdn下载过的资源

C#实现优快云评论助手V1.0 因为优快云的分数太少,汗啊。。。 通过下载后评论可以返回下载分,所以就评论,可以太蛋疼了,60秒才能评论一次。。。 就搞了个助手定时的评论,希望和我一样没有分的可以获得积分。 闲话太多,主要功能: 1.C#用webbrowser实现自动登录优快云; 2.自动获取未评论的资源列表; 3.定时评论,可以自定义评论内容,最主要的是开源啊,无私奉献!! 立即下载

1,安装selenium

    很简单,控制台pip install selenium即可

2,下载geckodriver放在python scripts目录中

3,测试是否可以正常运行

        from selenium import wendriver

        browser=webdriver.Firefox()

        browser.get('https:/www.youkuaiyun.com')

        time.sleep(3)

        browser.close()

        输入以上测试代码看看时候可以正常打开firefox浏览器,如果可以正常运行,说明环境搭建已经OK了

4,编程思路分析

        本文实现的是自动化登陆csnd并且自动化评论自己曾经下载过的资源(评论貌似会有积分赠送,如果自己曾经下载过很多资源的话,手工评论还是很考验耐心的。你懂的,程序员就应当当个“懒人”哈哈哈!)本文目的不在此,在于练习selenium+webdriver。熟练掌握这个工具能带来许多乐趣,看懂是一回事,自己做过一次才知道。废话少说,分析一下程序实现的思路。

        思路很简单,不要自己吓自己,一步步来!

        1,肯定要先登陆,这里有一个点难了我很久,特此记录一下,打开登陆页面默认的不是输入用户名和密码的界面,得先点击一下账号登陆才会涨到输入用户名密码的界面,不过这个只是js实现的一个效果而已,然后自己并不是很懂selenium的js应用(还要去学习一下selenium的execute_script()),这里我在网上查了好久,最后在stackoverflow上看到一个解决的办法(链接:Selenium and Python can't click href="javascript:void(0);" with .click() - Stack Overflow)还是得多看看这些外国得网站啊,上面的一般英文写的都很简单,一看就懂啥意思

        

点击账号登陆之后:

      

        转到登陆窗口之后,那就很简单了,直接

        browser.find_element_by_xpath('xxxx').send_keys('username')

        browser.find_element_by_xpath('xxxx').send_keys('password')

        browser.find_element_by_xpath('xxxx').click()#点击登陆按钮

        这就大功告成了!!!

分析下载页面链接规律:https://download.youkuaiyun.com/my/downloads/2,发现只有后面的数字发生变化,这就很简单了

直接取最后一页链接的最后一位就可以知道一共有多少页了,说干就干:

        #获取总的页数
    lastpage=browser.find_element_by_link_text("尾页").get_attribute('href')

    #print (lastpage)

    totlapage=int(lastpage[len(lastpage)-2:])

2,提取每一页中的评论地址

    可以看到如果没有评论的话会显示“立即评论”这四个字,我们通过find_elements_by_link_text("立即评论")(注意这里使用   的是find_elements_by_link_text,和find_element_by_link_text()是有很大的区别的,不多说,看多了个s你就懂是什么意思了吧,哈哈)

        urlc=browser.find_elements_by_link_text("立即评价")

3,最后依次打开地址去评论

    

    需要我们输入的地方有两个,最后再点击发表评论,即可以完成评论


4,效果图


        

5,总结

程序很简单,没有做考虑很很复杂的情况,没有做太多的异常处理,本文仅仅是实现了简单的自动登陆到自动评价,评价内容和评价的星级是写死的,后期可以加以完善。虽然看起来很简单的一个小程序,但是却足足花了我一个下午的时间才写出来,编码的能力还是有待提高。另外,简单的东西要自己动手做做看,不然都不知道自己有多菜,。眼高手低,永远也是成不了高手的(自己也是一个菜鸟,哈哈,写这个博客就是为了提醒自己有多菜……^_^,毕)

6,附程序代码(仅供参考)

#coding:utf-8
'''
Created on 20184月26号

@author: phny
'''
from selenium import webdriver
import time

#browser=webdriver.Chrome()#用google会报错,暂时不知道为什么  
browser=webdriver.Firefox()
browser.get('https://passport.youkuaiyun.com/account/login')

#转到用户名密码登陆,这里是个难点,卡了我好久,后来在stackoverflow上看到这样的解决方案,试了一下,果然灵
aElements = browser.find_elements_by_tag_name("a")
for name in aElements:
    if(name.get_attribute("href") is not None and "javascript:void" in name.get_attribute("href")):
        print("IM IN HUR")
        name.click()
        break
    
time.sleep(0.5)
browser.find_element_by_id('username').send_keys('your_username')
#time.sleep(0.5)
browser.find_element_by_id('password').send_keys('your_password')
#time.sleep(0.5)
browser.find_element_by_class_name('logging').click()

print("logging success!")
time.sleep(2)
#print (browser.page_source)
#转到的下载页面
browser.get('https://download.youkuaiyun.com/my/downloads')
#获取我下载过的内容的评价链接
time.sleep(0.5)
#获取总的页数
lastpage=browser.find_element_by_link_text("尾页").get_attribute('href')
#print (lastpage)
totlapage=int(lastpage[len(lastpage)-2:])
for i in range(2,totlapage+1):
    #构造下载链接
    url1='https://download.youkuaiyun.com/my/downloads/'+str(i)
    #打开每一页
    browser.get(url1)
    time.sleep(0.5)
    #获取评论链接
    urlc=browser.find_elements_by_link_text("立即评价")
    for comment_link_per_page in urlc:
        #转到评论链接
        try:
            print (comment_link_per_page.get_attribute('href'))
            commurl=comment_link_per_page.get_attribute('href')
            #打开新的标签页
            browser.execute_script("window.open()")
            print (browser.window_handles)
            #切换到新的标签页中
            browser.switch_to_window(browser.window_handles[1])
            #打开评论链接
            browser.get(commurl)
            time.sleep(0.5)
            #给出几颗星,这里默认给出的是五颗星(xpath定位比css定位好使,有时候css定位不行但是xpath定位却可以,神奇)
            browser.find_element_by_xpath("/html/body/div[5]/div[2]/div[1]/div[2]/div[2]/form/div/div[1]/ul/li[2]/i[5]").click()
            #输入评论内容
            browser.find_element_by_id('cc_body').send_keys("机器人评论!!!")
            time.sleep(0.5)
            #点击发表评论
            browser.find_element_by_xpath('/html/body/div[5]/div[2]/div[1]/div[2]/div[2]/form/div/div[3]/button').click()
            time.sleep(0.5)
            #关闭打开的标签页
            browser.execute_script("window.close()")
            #返回原来的tab标签页中
            browser.switch_to_window(browser.window_handles[0])
        except:
            browser.execute_script("window.close()") 
            
        
        






     








selenium环境搭建(版本火狐52+selenium 3.3 +geckodriver 15.0).zip java+testng使用火狐52进行自动化测试,最终发现是fselenium、firefox、geckodriverbane版本不匹配问题。现总结完美适配的包,selenium环境搭建(版本火狐52+selenium 3.3 +geckodriver 15.0),希望大家在自动化得道路上少遇到点坑 立即下载

相关推荐

python+selenium自动化资源

python+selenium测试框架,用于ui层的自动化测试,包含八种定位方式,以及特殊的表单切换,软件的安装教程,python语言的学习

Linux 服务器自动连接校园网,selenium + geckodriver + firefox浏览器

linux 服务器利用selenium 和火狐浏览器自动连接校园网

qq_42552025的博客 5669

selenium自动化

selenium培训视频框架代码,教你如何编写自动化以及添加自动化日志信息

GeckoDriver+Selenium+Python的安装和使用

下载地址:https://github.com/mozilla/geckodriver/releases。browser.find_element_by_id("kw").send_keys(u"船长博客")二、解压后放入C:\Python27(我之前已经把Python根目录设置为环境变量)新打开一个cmd窗口,有如下提示则为成功:geckodriver -h。我的是windows 10选择的是。一、下载GeckoDriver。

m0_64342982的博客 1869

ECU-TEST新手入门:从软件申请到第一个测试包创建的完整保姆级流程

本文详细介绍了ECU-TEST软件从申请试用、安装配置到创建第一个测试包的完整流程。针对新手用户,提供分步指导,包括界面认知、测试组件添加、变量定义及执行结果分析,帮助快速掌握汽车电子测试工具的基本操作。特别说明试用授权的两种获取方式和安装注意事项。

weixin_30606461的博客 481

CVPR2023新作HAT实战:5分钟搞定图像超分辨率重建(附代码)

本文介绍了CVPR2023新作HAT模型在图像超分辨率重建中的实战应用。HAT通过创新的混合注意力机制,显著提升了图像重建质量,能激活更多有效像素并减少伪影。文章提供了从环境配置到模型部署的完整指南,帮助开发者在5分钟内快速实现图像超分辨率重建,并附有代码示例和性能优化技巧。

weixin_29062613的博客 238

使用selenium 对在csdn自动评论代码实现

通过此脚本可实现自动评论功能。

lw的博客 849

西电微机系统课程设计步进电机开环控制系统

** 微机系统与应用课程设计 课题二 步进电机开环控制系统设计** 一、程设计目的 掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。 加深对 A/D 和并行接口芯片的工作方式和编程方法的理解。 搞懂步进电机的工作原理及控制方式,掌握开环控制系统的设计思路和实现方法。 二、课程设计的内容 手动调节电位器旋钮(0V~5V),通过 ADC0809 模拟输入水库水位 0 米~50...

qq_37015775的博客 4040

python+selenium实现微博登录和自动评论

作为杨超越粉丝,我并不甘心做一个完全的白嫖党,所以有时我也会帮忙做做数据,点点赞,刷刷评等。今天,我突发奇想,能不能用python实现自动化刷评呢?要实现这个想法肯定是要自动化登录微博的,于是有了以下尝试。

weixin_45368372的博客 3741

linux和mac安装+配置circos(

一定要下载完这两个包,GD才会work,要不然会报错,且-modules显示也是fail。官网的教程说的很明白,但是很多包都已经过时了需要在网上找。一般来讲,所有包的安装都不会太困难,除了GD。1.是因为官网给的链接下出来的tgz无法解压。2.我的电脑安装后GD照样是fail的。,进入这个地址下一个.tgz。第二点的原因在于,官网的情况。,进入这个地址,按部就班。GD安装困难有以下几点。搞了一天终于配置成功。

xiufan1的博客 551

游戏大厂技术护城河——为什么你抄不了原神?

│ │ │ │ ↓ 通过 │ │ │ │。│ │ │ │ ↓ 成功 │ │ │ │。│ │ │ │ ↓ 完成 │ │ │ │。│ │ │ │ ↓ 达标 │ │ │ │。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 71

Java使用Selenium批量导出优快云文章markdown格式到本地

Java使用selenium批量导出优快云文章markdown格式到本地一、需求背景二、基础Springboot工程准备(依赖、驱动等)1、新建springboot工程2、引入Selenium依赖3.下载selenium的java驱动4.编写代码进行测试环境是否具备 一、需求背景 现在我csdn上写的文章越来越多,但只存在csdn上,还是感觉不保险,万一哪天csdn网站出错,很多文章想找回来就难了,当前csdn上已支持单篇文章的导出,但文章太多,一篇一篇导出不太现实,因此基于这个需求,希望能把csdn上

冰之杍的博客 1697

Yolov8-pose关键点检测:训练实战篇 | 手部关键点检测

yolo8-pose实战检测手部关键点并优化。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 3397

最新爬虫(2019.07)淘宝页面登陆滑块验证 selenium + chromedriver 爬取淘宝信息

说在前面的话 你或许找了很久的方案来到了这里,当你看到本文章时,我默认你已经发现,淘宝的反扒措施是 webdriver和chromedriver的识别。所以我不会贴过多图片,不讲分析思路,直接给你鱼,文章最后直接上全部代码demo。 若帮助到你了,转发请注明出处,若阿里巴巴的朋友发现,请联系我删帖,谢谢。 背景 简单说下背景,最近某厂为了818,双11,12等需要分析友商数据,做...

怕疼的猫 1万+

18、AI在基础设施管理与运维中的应用及未来趋势

本文探讨了人工智能(AI)在基础设施管理和运维中的广泛应用,包括性能优化、成本节约、网络安全等多个场景。文章详细介绍了AI在不同领域的应用工具、实际案例以及面临的挑战,并展望了未来AI在基础设施管理中的发展趋势。此外,还分析了AI与Site Reliability Engineering(SRE)框架的结合优势,展示了AI如何提升运维效率和系统可靠性。

n7o8p的博客 149

【Flutter 面试题】 怎么减少Widget的重新构建?

关于 const 关键字的使用:在 Flutter 开发中,任何时候当你确定一个 Widget 在其整个生命周期内都不会发生变化时,使用 const 关键字声明这个 Widget。这样的声明告诉 Flutter 框架这个 Widget 可以在编译时生成,后续的构建周期中可以重用已经创建的 Widget,从而避免了重复的构建开销。这适用于静态文本、图标或整个不变的 Widget 树。

Code Metaverse 1577

怎么用python写抢购脚本,python+selenium抢购脚本

大家好,本文将围绕python小程序抢购脚本怎么写展开说明,怎么用python写抢购脚本是一个很多人都想弄明白的事情,想搞清楚python+selenium抢购脚本需要先了解以下几个事情。第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作,所以不够买的商品最好先从购物车内删除。第二步:写好Python脚本,在抢购之前运行,并设置好抢购时间。

pingf123的博客 827

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

selenium网页加载缓慢

Selenium 页面加载慢 问题描述 使用Selenium进行QQ空间的模拟登陆时,发现webdriver.get方法会阻塞直到网页全部加载完成,官方提供的三种wait方法仅对网页的ajax有比较明显的效果。对于登陆QQ空间来说,网页中所需要的元素很快就能加载完成,但是整个页面加载完成却需要很久,所以如何才能使得网页在加载完所需要元素后即停止是本文所需要解决的问题。 问题解决 pageLoadS...

weixin_44236428的博客 1777

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

手把手教你编写Python抢购脚本

① Python所有方向的学习路线图,清楚各个方向要学什么东西② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论④ 20款主流手游迫解 爬虫手游逆行迫解教程包⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解⑦ 超300本Python电子好书,从入门到高阶应有尽有⑧ 华为出品独家Python漫画教程,手机也能学习。

2301_76161259的博客 2489

UI&API自动化测试框架(通用版/企业级)

该框架采用 Java 语言,集成 Selenium 4、Cucumber、TestNG、RestAssured、UI + API 混合测试、PO + BDD 分层架构、YAML 元素库、 Mock、流量录制回放、 DDT 数据驱动、重试机制、跨浏览器并发线程隔离,故障注入、 Allure + ExtentReports 双报告、Selenium Grid + Docker + K8s 分布式并发执行、CI/CD(Jenkins/GitHub/GitLab CI)持续集成与交付

m0_37606579的博客 467

手把手教你编写Python抢购脚本_py盯货脚本

然鹅,此时我遇到了错误,如下于是,我把chromedriver.exe放到了我python脚本的文件夹后,就完美解决问题了!【补充】 我知道自己为什么出现上面那个错误了,因为路径没输入!在下图所示红框处输入自己的下载的chromedriver安装路径即可成功运行。

2401_84584740的博客 1104
上一篇: 学了C编码实践之后,我个人在代码层面对软件工程的理解
下一篇: 关于:如果函数的参数是一个指针,不要指望用该指针去申请动态内存 我的理解
phny
博客等级 码龄12年 3粉丝 9原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值