必备知识

在官网上下好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实战-自动退百度云共享群的更多相关文章

  1. python实现简单的百度云自动下载

    最近女同让我帮助从百度云下载200个文件,给了我连接和提取码,这种重复的工作不适合人做写了一个简单的爬虫 #coding=utf-8 ''' 自动填写提取码下载百度云资源 方法: for 读取文件中的 ...

  2. 黄聪:VPS实现自动定时备份网站数据以及Mysql数据库到百度云同步盘

    建站多了,备份成了头疼的问题,因为你不知道你的VPS什么时候会宕机或者服务商跑路,一旦网站数据丢失,那么相当于前功尽弃了,所以自己研究出了一套自动备份的方法. 需要的东西: 1.一个VPS(虚拟空间没 ...

  3. http跳转https方法:百度云如何让http自动跳转到https【免费SSL证书使用FAQ】

    之前的一篇文章已经给大家提供了免费SSL证书的申请方法,这一篇文章是告诉大家在使用免费的SSL证书时可能会遇到的问题[怎么让http自动跳转到https以及http与https同时使用]的解决方法. ...

  4. python+selenium+chrome实现自动登录百度

    #python3.4+selenium3.5+chrome版本 63.0.3239.132+chrome驱动chromedriver.exe #实现自动登录百度 from selenium impor ...

  5. 群福利:百度云管家-本地SVIP

    效果 如果不想登录破解版的百度云(防止泄密)==>复制AppSettingApp.dat和users文件夹,这样你就可以免登录了 最稳定版本:https://yunpan.cn/cBTQc9Iu ...

  6. 调用百度云Api实现从百度云盘自动下载文件

    一.注册账号 要从百度云下载文件,首先,注册一个百度云账号,现在可能都要注册手机号啦,当然,如果你已经注册过,很幸运,就可以省略掉此步骤啦. 如图登录后所示: 点击Access Key,即显示上面的图 ...

  7. 《Apache kafka实战》读书笔记-kafka集群监控工具

    <Apache kafka实战>读书笔记-kafka集群监控工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如官网所述,Kafka使用基于yammer metric ...

  8. 百度云曲显平:AIOps时代下如何用运维数据系统性地解决运维问题?

    百度云智能运维负责人 曲显平 本文是根据百度云智能运维负责人曲显平10月20日在msup携手魅族.Flyme.百度云主办的第十三期魅族技术开放日<百度云智能运维实践>演讲中的分享内容整理而 ...

  9. 最近建了一个.net源码共享群,群共享有大量网友分享的.net(C#)商业源码

    .net源码共享群 324087998. 本群创建于2013/6/21: 群里都是.net(C#)程序开发人员,群共享有大量网友分享的.net(C#)商业源码.比如:DTCMS旗舰版,hishop微分 ...

随机推荐

  1. ios cordite 读取错误CoreData could not fulfill a fault for '0x15b4a870

    解释在这里 http://stackoverflow.com/questions/14296892/nsobjectinaccessibleexception-reason-coredata-coul ...

  2. 手动编译并运行Java项目的过程

    现在Java开发基本上就是IDE调试,如果跨平台打个jar包过去运行一般就可以了,但是有些情况比如需要引入外部依赖的时候,这个时候是不能直接运行的,还需要引入一些外部的参数,并不是简单的javac和j ...

  3. Java for LeetCode 227 Basic Calculator II

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  4. September 28th 2016 Week 40th Wednesday

    Love all, trust a few, do wrong to none. 爱所有人,信任一些人,不妨害任何人. Reading is a way for me to expand my min ...

  5. 比较 http连接 vs socket连接

    http连接 :短连接,客户端,服务器三次握手建立连接,服务器响应返回信息,连接关闭,一次性的socket连接:长连接,客户端,服务器三次握手建立连接不中断(通过ip地址端口号定位进程)及时通讯,客户 ...

  6. iOS-Runtime-Headers

    iOS8.4 及之前的头文件 私有及共有API https://github.com/nst/iOS-Runtime-Headers  

  7. IOS8下,百度地图无法定位解决办法

      通过在论坛中搜索,找到解决办法,我只是论坛的搬运工.分享如下:   1.在info.plist中加入: NSLocationAlwaysUsageDescription=YES NSLocatio ...

  8. Javaweb---Servlet过滤器

    Servlet过滤器从字面上的字意理解为景观一层次的过滤处理才达到使用的要求,而其实Servlet过滤器就是服务器与客户端请求与响应的中间层组件,在实际项目开发中Servlet过滤器主要用于对浏览器的 ...

  9. Xcode开发中的6个小技巧

    Xcode是iPhone和iPad开发者用来编码或者开发iOS app的IDE.Xcode有很多小巧但很有用的功能,很多时候我们可能没有注意到它们,也或者我们没有在合适的水平使用这些功能简化我们的iO ...

  10. 20145206实验四《Android开发基础》

    20145206 实验四<Android开发基础> 实验内容 ·安装Android Studio ·运行安卓AVD模拟器 ·使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 ...