selenium实战-自动退百度云共享群
必备知识
在官网上下好selenium-3.0.1-py2.py3-none-any.whl,然后进入下载文件所在的位置
pip install selenium-3.0.1-py2.py3-none-any.whl
再下个Chrom的驱动,具体可以参考虫师的博客
Selenium快速入门
1. 需要的模块和基本操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()
其中webdriver 用来打开浏览器,ActionChains是用来控制浏览器的一些操作
2. 访问网络
driver.get('http://pan.baidu.com')
3. 在当前页面输入账号、密码、验证码
这里很6的地方在于只要始终在当前窗口操作,脚本里的driver和你所改动的操作是同步的,省去了很多事
4. 获得浏览器的焦点,用来模拟鼠标
mouse = ActionChains(driver)
5. 必备知识
5.1 定位元素
element = driver.find_element_by_xpath(' ')
element = driver.find_element_by_css_selector()
element = driver.find_element_by_id()
element = driver.find_element_by_name()
element = driver.find_element_by_class_name()
按个人经验,在谷歌浏览器按F12后右键copy可以复制xpath或css_selector,比较方便,而id、name、class_name在定位按钮、文本框时比较有用
5.2 浏览器操作
看很多教程里都是说控制鼠标,个人觉得应该说模拟鼠标或控制浏览器焦点更合适,因为鼠标根本没动嘛,只有焦点改变了。
context_click() # 右击
double_click() # 双击
drag_and_drop() # 拖动 element = driver.find_element_by_...
# 在某个元素上右击
ActionChains(driver).contex_click(element).perform()
# 移动到某个元素上
ActionChains(driver).move_to_element(element).perform()
# 在某个元素上左击
ActionChains(driver).click(element).perform()
# 滚动
driver.execute_script("window.scrollBy(dx, dy)", "")
# 偏移
ActionChains(driver).move_by_offset(dx, dy).perform()
# 左击
ActionChains(driver).click().perform()
6. 执行脚本
# 移到好友并点击
friend = driver.find_element_by_css_selector('#body > div > div > div > div.module-sectionLists > ul > li.tabs-item.friend-item > a > em')
mouse.move_to_element(friend).perform()
mouse.click().perform() # 移动到好友下方的第一个群组并点击
driver.implicitly_wait(5)
while 1:
try: mouse.move_to_element(friend).perform()
mouse.move_by_offset(0, 116).perform()
mouse.click().perform()
time.sleep(0.1)
# 分享文件按钮
fenx = driver.find_element_by_xpath('//*[@id="body"]/div/div/div/div[2]/div[2]/div/div/a')
fenx.click()
time.sleep(0.1)
# 选中了下拉标签
driver.find_element_by_xpath('//*[@id="body"]/div/div/div/div[2]/h2/div[1]/div/span').click()
time.sleep(0.1)
# 退群按钮
time.sleep(0.1)
driver.find_element_by_class_name('group-exit-btn').click()
# 确认按钮
time.sleep(0.1)
driver.find_element_by_css_selector('#_disk_id_26').click()
except StandardError, e:
time.sleep(1)
selenium实战-自动退百度云共享群的更多相关文章
- python实现简单的百度云自动下载
最近女同让我帮助从百度云下载200个文件,给了我连接和提取码,这种重复的工作不适合人做写了一个简单的爬虫 #coding=utf-8 ''' 自动填写提取码下载百度云资源 方法: for 读取文件中的 ...
- 黄聪:VPS实现自动定时备份网站数据以及Mysql数据库到百度云同步盘
建站多了,备份成了头疼的问题,因为你不知道你的VPS什么时候会宕机或者服务商跑路,一旦网站数据丢失,那么相当于前功尽弃了,所以自己研究出了一套自动备份的方法. 需要的东西: 1.一个VPS(虚拟空间没 ...
- http跳转https方法:百度云如何让http自动跳转到https【免费SSL证书使用FAQ】
之前的一篇文章已经给大家提供了免费SSL证书的申请方法,这一篇文章是告诉大家在使用免费的SSL证书时可能会遇到的问题[怎么让http自动跳转到https以及http与https同时使用]的解决方法. ...
- python+selenium+chrome实现自动登录百度
#python3.4+selenium3.5+chrome版本 63.0.3239.132+chrome驱动chromedriver.exe #实现自动登录百度 from selenium impor ...
- 群福利:百度云管家-本地SVIP
效果 如果不想登录破解版的百度云(防止泄密)==>复制AppSettingApp.dat和users文件夹,这样你就可以免登录了 最稳定版本:https://yunpan.cn/cBTQc9Iu ...
- 调用百度云Api实现从百度云盘自动下载文件
一.注册账号 要从百度云下载文件,首先,注册一个百度云账号,现在可能都要注册手机号啦,当然,如果你已经注册过,很幸运,就可以省略掉此步骤啦. 如图登录后所示: 点击Access Key,即显示上面的图 ...
- 《Apache kafka实战》读书笔记-kafka集群监控工具
<Apache kafka实战>读书笔记-kafka集群监控工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如官网所述,Kafka使用基于yammer metric ...
- 百度云曲显平:AIOps时代下如何用运维数据系统性地解决运维问题?
百度云智能运维负责人 曲显平 本文是根据百度云智能运维负责人曲显平10月20日在msup携手魅族.Flyme.百度云主办的第十三期魅族技术开放日<百度云智能运维实践>演讲中的分享内容整理而 ...
- 最近建了一个.net源码共享群,群共享有大量网友分享的.net(C#)商业源码
.net源码共享群 324087998. 本群创建于2013/6/21: 群里都是.net(C#)程序开发人员,群共享有大量网友分享的.net(C#)商业源码.比如:DTCMS旗舰版,hishop微分 ...
随机推荐
- Oracle java.sql.SQLException: 数字溢出
六月 30, 2016 5:47:47 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinit ...
- 如何使用shell脚本快速排序和去重文件数据
前面写过一篇通过shell脚本去重10G数据的文章,见<用几条shell命令快速去重10G数据>.然而今天又碰到另外一个业务,业务复杂度比上次的单纯去重要复杂很多.找了很久没有找到相应的办 ...
- ACM/ICPC 之 Floyd范例两道(POJ2570-POJ2263)
两道以Floyd算法为解法的范例,第二题如果数据量较大,须采用其他解法 POJ2570-Fiber Network //经典的传递闭包问题,由于只有26个公司可以采用二进制存储 //Time:141M ...
- Spring4 与 Hibernate4 整合过程中的问题记录
Spring4使用注解配置,很方便也很有趣,就是有一些坑需要自己去发现和解决,笔者列出自己在使用过程中遇到的问题,希望对您有所帮助. 1.如果使用hibernate.cfg.xml配置文件配置Hibe ...
- Divide and Conquer:River Hopscotch(POJ 3258)
去掉石头 题目大意:一群牛在河上的石头上跳来跳去,现在问你如何通过去掉M个石头,使得牛跳过石头的最短距离变得最大? 这一题比较经典,分治法的经典,二分法可以很方便处理这个问题,我们只要明白比较函数这 ...
- 【leetcode】Binary Tree Maximum Path Sum (medium)
Given a binary tree, find the maximum path sum. The path may start and end at any node in the tree. ...
- Hibernate双向一对多对象关系模型映射
双向one-to-many 描述部门和岗位:一个部门有多个岗位 将单向的one-to-many 和many-to-one合并. 4.1双向的one-to-many数据库模型 create table ...
- Android缓存学习入门
本文主要包括以下内容 利用LruCache实现内存缓存 利用DiskLruCache实现磁盘缓存 LruCache与DiskLruCache结合实例 利用了缓存机制的瀑布流实例 内存缓存的实现 pub ...
- Quartus ii 12.1软件破解之后编译原有的工程出现报警错误的解决办法
在Quartus ii 12.1软件破解之后,想用来编译原来编译过的工程,但是编译到最后出现下面两个错误警告: 原来以为没有破解成功或者安装的时候有文件被杀毒软件吃了,导致安装错误,又重新安装了两次都 ...
- AJAX 汽车详细信息练习
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...