爬虫请求库之selenium
时间:2019-11-27
本文章向大家介绍爬虫请求库之selenium,主要包括爬虫请求库之selenium使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一:简介
1:介绍
(1)selenium最初是测试工具
(2)爬虫使用该模块的原因是request无法操作js代码 而selenium可以操作js代码
(3)selenium本质是操作浏览器内核 完全模拟浏览器行为 例如 输入内容 点击等
(4)因为直接操作浏览器 我们无需考虑请求头等
2:支持的浏览器
from selenium import webdriver browser=webdriver.Chrome() browser=webdriver.Firefox() browser=webdriver.PhantomJS() browser=webdriver.Safari() browser=webdriver.Edge()
二:安装使用
1:安装
pip3 install selenium
下载chromdriver.exe放到python安装路径的scripts目录中即可 国内镜像网站地址:http://npm.taobao.org/mirrors/chromedriver/2.38/ 最新的版本去官网找:https://sites.google.com/a/chromium.org/chromedriver/downloads
#注意: selenium3默认支持的webdriver是Firfox,而Firefox需要安装geckodriver 下载链接:https://github.com/mozilla/geckodriver/releases
2:基本使用
1、find_element_by_id 根据id找 2、find_element_by_link_text 根据链接名字找到控件(a标签的文字) 3、find_element_by_partial_link_text 根据链接名字找到控件(a标签的文字)模糊查询 4、find_element_by_tag_name 根据标签名 5、find_element_by_class_name 根据类名 6、find_element_by_name 根据属性名 例如 name = 'xxx' 7、find_element_by_css_selector 根据css选择器 8、find_element_by_xpath 根据xpath选择
3:显示等待与隐式等待
(1)由于代码执行过快 可能某个标签还没有被加载出来但是代码已经执行完毕 导致不能正确查找标签
原文地址:https://www.cnblogs.com/SR-Program/p/11944669.html
- 用C#实现字符串相似度算法(编辑距离算法 Levenshtein Distance)
- 51 Nod 1007 正整数分组【类01背包】
- 从入门到精通之Boyer-Moore字符串搜索算法详解
- 线性表的顺序存储结构的实现及其应用(C/C++实现)
- IPython使用学习笔记
- 如何用Python调用java程序
- LCT学习笔记
- 队列的存储结构的实现(C/C++实现)
- 栈的存储结构的实现(C/C++实现)
- 【经验分享】Hydra(爆破神器)使用方法
- 基于pytest集成selenium
- Android应用程序使用两个LinearLayout编排5个Button控件
- Robot Framework | 02 从抛弃RIDE开始创建你的RFS测试
- [接口测试 - http.client篇] 14 源码初探及其工作机制分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python常用模块os和shutil学习
- Python简单实现批量下载无版权图片
- Pycharm自动添加文件头注释和函数注释参数
- ClickHouse TTL for Columns and Tables
- Sentence-BERT详解
- 分布式文件系统(HDFS和FastDFS)
- Springboot集成JUnit5优雅进行单元测试
- 音视频相关开发库和资料
- SpringSecurity认证专题之【AuthenticationManager】
- dotnet 让 C# 可以通过动态生成 HLSL 使用 DX12 的 GPU 并行计算库 ComputeSharp 的简介
- 比对软件STAR创建索引文件(index)
- linux|无需解压查看压缩文件内容
- R函数不会写,"抄"总会吧!
- @Resource和@Autowire的区别
- R函数,如何“抄”出水平