selenium
ajax
基本介绍
- JS
- 是网络上最常⽤的脚本语⾔,它可以收集⽤户的跟踪数据,不需要重载页面直接提交表单,在⻚⾯嵌⼊多媒体⽂件,甚⾄运⾏网页
- JQuery
- jQuery是⼀个快速、简介的JavaScript框架,封装了JavaScript常⽤的功能代码
- ajax
- ajax可以使⽤⽹⻚实现异步更新,可以在不重新加载整个网页的情况下,对网页的某部分进⾏更新
获取ajax数据方式
- 直接分析ajax调⽤的接⼝。然后通过代码请求这个接口。
- 优点:直接可以请求到数据。 不需要做⼀些解析工作。代码量少,性能⾼
- 缺点:分析接⼝⽐较复杂,特别是⼀些通过js混淆的 接口,要有⼀定的js功底。容易被发现是爬⾍。
- 使⽤Selenium+chromedriver模拟浏览器⾏为获取数据
- 优点:直接模拟浏览器的行为。浏览器能请求到的,使⽤selenium也能请求到。爬⾍更稳定。
- 缺点:代码量多,性能低
Selenium与Chromedriver
基本介绍
- selenium是⼀个web的⾃动化测试⼯具,最初是为网站⾃动化测试⽽开发的,selenium可以直接运⾏在浏览器上,它⽀持所有主流的浏览器,可以接收指令,让浏览器⾃动加载⻚⾯,获取需要的数据,甚⾄⻚⾯截屏
- chromedriver是⼀个驱动Chrome浏览器的驱动程序,使⽤他才可以驱动浏览器。当然针对不同的浏览器有不同的driver。
- 百度搜索:淘宝镜像(https://npm.taobao.org/)
- 安装总结:https://www.jianshu.com/p/a383e8970135
Phantomjs快速入门
1 | from selenium import webdriver |
selenium入门
快速入门
1 | from selenium import webdriver |
定位元素
- find_element_by_id:根据id来查找某个元素
1 | from selenium import webdriver |
- find_element_by_class_name:根据类名查找元素
1 | from selenium import webdriver |
- find_element_by_name:根据name属性的值来查找元素
1 | from selenium import webdriver |
- find_element_by_tag_name:根据标签名来查找元素
1 | from selenium import webdriver |
- find_element_by_xpath:根据xpath语法来获取元素
1 | from selenium import webdriver |
- css选择器select
1 | from selenium import webdriver |
操作表单元素
- 第⼀步:找到这个元素。
- 第⼆步:使⽤send_keys(value),将数据填充进去
1 | from selenium import webdriver |
操作下拉菜单
- select元素不能直接点击。因为点击后还需要选中元素。这时候selenium就专⻔为select标签提供了⼀个类selenium.webdriver.support.ui.Select。将获取到的元素当成参数传到这个类中,创建这个对象。以后就可以使⽤这个对象进⾏选择了。https://www.17sucai.com/boards/53562.html
1 | from selenium import webdriver |
操作非select标签
1 | from selenium import webdriver |
行为链
- 有时候在⻚⾯中的操作可能要有很多步,那么这时候可以使⽤⿏标⾏为链类ActionChains来完成。⽐如现在要将⿏标移动到某个元素上并执⾏点击事件
1 | from selenium import webdriver |