为例 3.1 在python虚拟环境中安装selenium模块 pip/pip3 install selenium 3.2 下载版本符合的webdriver 以chrome谷歌浏览器为例 查看谷歌浏览器的版本.../chromedriver')中executable参数指定的是下载好的chromedriver文件的路径 driver.find_element_by_id('kw').send_keys('python...:触发标签的js的click事件 selenium提取数据 1. driver对象的常用属性和方法 在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法 driver.page_source...1. selenium标签页的切换 当selenium控制浏览器打开多个标签页时,如何控制浏览器在不同的标签页中进行切换呢?...页面等待 页面在加载的过程中需要花费时间等待网站服务器的响应,在这个过程中标签元素有可能还没有加载出来,是不可见的,如何处理这种情况呢? 1. 页面等待分类 2. 强制等待介绍 3.
选取所有带有属性的title元素: //title[@*] 1.1.3注意点 找字符串的时候(标签中的文本),一般在路径后面加上 text()。...4.1.3.1 通过js实现跳转来反爬 反爬原理:js实现页面跳转,肉眼不可见。 解决方法: 在chrome中点击perserve log按钮实现观察页面跳转情况。...4.1.3.2 通过js生成了请求参数 反爬原理:js生成了请求参数。 解决方法:分析js,观察加密的实现过程,通过js2py获取js的执行结果,或者使用selenium来实现。...4.1.3.3 通过js实现了数据的加密 反爬原理:js实现了数据的加密。 解决方法:分析js,观察加密的实现过程,通过js2py获取js的执行结果,或者使用selenium来实现。...("属性名") 通过定位获取的标签对象的 get_attribute函数,传入属性名,来获取属性的值 代码: from selenium import webdriver driver = webdriver.Chrome
使用python3.6在Ubuntu中进行了一项使用Chrome headless浏览器的工作, 在此记录下遇到的问题以及解决方法. 入门?...参考 unning-selenium-with-headless-chrome Ubuntu中如何安装chrome浏览器, 以及chromedriver?...参考 Installing ChromeDriver on Ubuntu selenium启动浏览器时常用的属性 from selenium.webdriver.chrome.options import.../Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary' #手动指定使用的浏览器位置 selenium如何连接到已经开启的浏览器?..._url, opener.session_id #opener为webdriver对象 之后通过remote方式链接 from selenium import webdriver opener = webdriver.Remote
selenium标签页的切换 当selenium控制浏览器打开多个标签页时,如何控制浏览器在不同的标签页中进行切换呢?...标签嵌套的页面中 driver.switch_to.frame(通过find_element_by函数定位的frame、iframe标签对象) 利用切换标签页的方式切出frame标签 windows =...在设置的时间内没有定位成功,则会报超时加载 示例代码: from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait...对象 driver = webdriver.Chrome(chrome_options=options) 注意: macos 中 chrome 浏览器 59+ 版本,Linux 中 57+ 版本才能使用无界面模式...('--user-agent=Mozilla/5.0 HAHA') 实例化带有配置对象的driver对象 driver = webdriver.Chrome('.
目录如下: web自动化之selenium的特殊用法(一) 1、get_attribute() 2、js滚动页面 3、Tab键点击页面未展示元素 4、通过空格键执行页面滚动操作 1.摁空格键 2.报错...(2)组合键使用 (4)常用组合键 (5)常用功能键 2、Python-Selenium:如何通过click在新的标签页打开链接?...3、selenium 带有空格的class name且不唯一的元素定位 1、当前浏览器窗口截屏 2、生成网站长截图 3、特殊网页无法长截图,使用多图拼接技术 4、无头模式调整浏览器的实际窗口大小 web...:如何通过click在新的标签页打开链接?...() 3、selenium 带有空格的class name且不唯一的元素定位 有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message
标签页的切换 当selenium控制浏览器打开多个标签页时,如何控制浏览器在不同的标签页中进行切换呢?...接下来我们通过qq邮箱模拟登陆来学习这个知识点 参考代码: import time from selenium import webdriver driver = webdriver.Chrome...页面等待 页面在加载的过程中需要花费时间等待网站服务器的响应,在这个过程中标签元素有可能还没有加载出来,是不可见的,如何处理这种情况呢?...,如果完成了,就进行下一步 在设置的时间内没有定位成功,则会报超时加载 示例代码 from selenium import webdriver driver = webdriver.Chrome...实例化带有配置对象的driver对象 driver = webdriver.Chrome(chrome_options=options) 注意:macos中chrome浏览器59+版本,Linux
标签页的切换 当selenium控制浏览器打开多个标签页时,如何控制浏览器在不同的标签页中进行切换呢?...接下来我们通过qq邮箱模拟登陆来学习这个知识点 参考代码: import time from selenium import webdriver driver = webdriver.Chrome...页面等待 页面在加载的过程中需要花费时间等待网站服务器的响应,在这个过程中标签元素有可能还没有加载出来,是不可见的,如何处理这种情况呢?...,如果完成了,就进行下一步 在设置的时间内没有定位成功,则会报超时加载 示例代码 from selenium import webdriver driver = webdriver.Chrome()...实例化带有配置对象的driver对象 driver = webdriver.Chrome(chrome_options=options) 注意:macos中chrome浏览器59+版本,Linux
js代码,把检测selenium的js修改掉。...8.请求参数加密 网易云音乐的post请求的请求体就是前端经过js加密后计算得到的,需要逆向js代码 9.返回数据加密 需要逆向js代码,分析如何解密。...: # requests允许使用params关键字参数,以字典的形式来提供get请求url中的参数。...'} r = requests.post("http://httpbin.org/post", data=payload) print(r.text) # 可以为 data 参数传入一个元组列表 # 在表单中多个元素使用同一...定时获取redis中的所有代理IP,检测每一个代理IP是否可用。 通过flask,对外提供获取代理IP的接口,如果想要使用代理池中的代理IP,只需要访问我们提供的接口即可。
有的网页中的信息需要执行js才能显现,动态网页中, 通常只会更新局部的Html元素, webdriver会很好的帮助用户快速定位这些元素,最终目的是通过提供精心设计的面向对象API来解决现代高级网页中的测试难题...在firefox或chrome中按住拓展插件 以firefox浏览器为例 添加后,就可以使用Selenium IDE了 具体参考:浏览器自动化利器Selenium IDE使用指南 2.1.2 Selenium...【通过 Selenium Grid 的可以控制多台机器多个浏览器执行测试用例,分布式上执行的环境在 Selenium Grid 中称为node节点。】...通过 driver.find_element_by_id('kw').send_keys("刘德华") # send_keys中可以设置文件的路径,即可完成对应的文件上传 #方式1:通过send_keys...('screenshot.png') 下面我们加载一个stealth.min.js文件后再来访问这个网站,查看特征值: stealth.min.js的下载地址为: https://gitcode.com
前言 之前经常使用 execute_script() 方法执行 JavaScript 的来解决页面上一些 selenium 无法操作的元素,但是一直无法获取执行的返回值。...目标元素元素属性 href="https://www.cnblogs.com/"> 博客园 我们可以在浏览器 Console...但是在代码里面执行的时候,却拿不到返回值 from selenium import webdriver # 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com...href 属性 link = blog.get_attribute("href") print(link) # 点击元素 blog.click() 运行后结果: selenium.webdriver.remote.webelement.WebElement...web 网页,需页面有加载 jquery 的 js 文件
一 介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,...若在Windows系统中,将下载的phantomjs文件夹下bin文件夹下的phantomjs.exe文件复制粘贴到python文件夹的scripts目录下(当然也可以在程序中动态的为webdriver.PhantomJS...若在Mac系统中,将下载的phantomjs文件夹下bin文件夹下的phantomjs文件拷贝到“Library/Python/2.7/site-packages”目录下。...至此我们就可以在python文件中引用webdriver和phantomjs了(这里phantomjs仅仅发挥了它是无窗口浏览器的作用)。...的方式windows.open,有windows快捷键:ctrl+t等,最通用的就是js的方式 import time from selenium import webdriver browser=webdriver.Chrome
3.安装Selenium pip install Selenium 4.安装浏览器驱动 Selenium3.x调用浏览器必须有一个webdriver驱动文件 Chrome驱动文件下载:点击下载chromedrive...Firefox驱动文件下载:点解下载geckodriver 5.配置环境变量 设置浏览器的地址非常简单。...我们可以手动创建一个存放浏览器驱动的目录,如: F:\GeckoDriver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver)丢到该目录下。...我的电脑–>属性–>系统设置–>高级–>环境变量–>系统变量–>Path,将“F:\GeckoDriver”目录添加到Path的值中。...对于通过input标签实现的上传功能,可以将其看作是一个输入框,即通过send_keys()指定本地文件路径的方式实现文件上传。
静态网页和动态网页 静态网页是指以在服务器中形成静态html或htm文档并发送到客户端的网页服务。 动态网页则需要依靠客户端的脚本和服务端的脚本两种方式进行渲染才形成最终的显示文档。...安装Selenium: pip install selenium Selenium还需要浏览器的驱动才能运行,下载驱动,我下载Chrome驱动: Chrome:https://sites.google.com...注意,chromedriver的版本一定要与本机上装的Chrome浏览器版本一致。 然后放到系统变量Path中。...下载PhantomJS:https://phantomjs.org/download.html 下载完成后只需要将bin目录下的.exe文件放在Windows/System32目录下: ? 3....JavaScript脚本渲染,标语的数据也只是存在前端html文件上。
Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。...selenium也是支持无界面浏览器操作的。 2.为什么使用selenium 模拟浏览器功能,自动执行网页中的js代码,实现动态加载。...使请求更加真实(好像是真的浏览器在请求) 3.如何安装selenium (1)操作谷歌浏览器驱动下载地址,两个地址都可以。...位,下载完不要安装 4. selenium的使用步骤 (1)导入:from selenium import webdriver (2)创建谷歌浏览器操作对象: path = 谷歌浏览器驱动文件路径...from selenium import webdriver # 下载的selenium解压后文件的路径,放在项目里lib/目录下 path = 'lib/chromedriver.exe' #
一般的的静态HTML页面可以使用requests等库直接抓取,但还有一部分比较复杂的动态页面,这些页面的DOM是动态生成的,有些还需要用户与其点击互动,这些页面只能使用真实的浏览器引擎动态解析,Selenium...Headless Chrome Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有Chrome支持的特性,在命令行中运行你的脚本。...pip install selenium 使用时还需要下载浏览器驱动,以chromedriver为例,下载地址: chromedriver 国内镜像: 镜像 下载时注意与电脑的chrome版本保持一致,...使用headless模式: from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_options.add_argument...现在获取的源码基本是完整的,还存在一些小问题,比如网页为了让img延迟加载,img的地址是放在data-img属性上的,等到浏览器滑动至图片时才修改src属性,可以使用pyquery修改: import
fiddler抓包工具的简单使用 xpath选择器 #xpath:xml查找语言,在xml中查找标签的语言 #/从节点中选取和// /body/p 直接子节点 /body//p 子子孙孙 # xpath...本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 有了selenium能够实现可见即可爬 -使用(本质,并不是python在操作浏览器...驱动得匹配(浏览器匹配,浏览器版本跟驱动匹配)) -3 写代码 3.2模块的使用 -selenium的使用 1 实例化 bro=webdriver.Chrome(executable_path=...js import time from selenium import webdriver browser=webdriver.Chrome() browser.get('https://www.baidu.com...抓包工具的简单使用 # 抓包工具的使用(fiddler,charles) # # 6 fildder的使用:http://101.133.225.166:8088/ #下载地址:https://www.telerik.com
,点击下载 如果是使用火狐浏览器,查看火狐浏览器版本,点击 GitHub火狐驱动下载地址 下载(英文不好的同学右键一键翻译即可,每个版本都有对应浏览器版本的使用说明,看清楚下载即可) 简介 Selenium...在代码最开头引入 webdriver ,在代码中实例化浏览器对象后,使用get方法请求网址,打开所需要的网址。...如果使用默认值,则假定可执行文件位于PATH中;其中的PATH为系统环境根目录 在 selenium 实现自动化过程中,必要的一步是启动服务,查看 init初始化方法中,发现了以下代码: self.service...在异常抛出检测到此已知道了selenium如何启动服务。接下来查看get请求网址的实现流程。...,使用方法在函数中已经说明。
所以,在实际项目中,一般会采用 Docker 容器来搭建分布式环境 2.下载镜像 首先,在服务器下载安装 Docker CE 免费版本,并配置加速镜像源,然后重启 Docker 应用 # 编辑文件,输入镜像加速地址.../node-chrome-debug VNC Server docker pull selenium/node-chrome-debug 3.运行容器 使用 docker run 命令,可以直接通过镜像创建一个容器并运行起来...需要注意的是,如果是部署在服务器,需要配置服务器防火墙和安全组规则 4.查看节点及启动 VNC 使用 Chrome 打开通过 Docker 主机 IP + Hub 主节点映射的端口号组成的 URL 比如...比如:http://139.199.xx.xx:5900 需要注意的是,第一次登陆默认的密码是:secret 5.编写脚本并运行 随手编写一段脚本,将 command_executor 参数中的地址设置为上面...Hub 主节点 IP 地址 from selenium import webdriver driver = webdriver.Remote( command_executor='http://139.199
所以,在实际项目中,一般会采用 Docker 容器来搭建分布式环境 2.下载镜像 首先,在服务器下载安装 Docker CE 免费版本,并配置加速镜像源,然后重启 Docker 应用 # 编辑文件,.../node-chrome-debug VNC Server docker pull selenium/node-chrome-debug 3.运行容器 使用 docker run 命令,可以直接通过镜像创建一个容器并运行起来...:hub selenium/node-chrome-debug 使用 docker ps -a 命令即可以查看容器的运行状态及端口映射情况 需要注意的是,如果是部署在服务器,需要配置服务器防火墙和安全组规则...4.查看节点及启动 VNC 使用 Chrome 打开通过 Docker 主机 IP + Hub 主节点映射的端口号组成的 URL 比如:http://139.199.xx.xx/grid/console...编写脚本并运行 随手编写一段脚本,将 command_executor 参数中的地址设置为上面 Hub 主节点 IP 地址 from selenium import webdriver driver
领取专属 10元无门槛券
手把手带您无忧上云