爬虫之Selenium
简介
selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器
作用: 可以让浏览器完成相关自动化的操作
和爬虫的关联:
- 模拟登陆
- 可以获取动态加载的页面数据
编码流程:
- 导包
- 实例化浏览器对象(驱动)
- 制定相关自动化的行为动作
环境安装
- 下载安装selenium:pip install selenium
- 下载浏览器驱动程序:
- http://chromedriver.storage.googleapis.com/index.html
- 查看驱动和浏览器版本的映射关系:
- http://blog.csdn.net/huilan_same/article/details/51896672
简单使用/效果展示
01:
![](/assets/blank.gif)
![](/assets/blank.gif)
from selenium import webdriver from time import sleep bro = webdriver.Chrome(executable_path='./chromedriver.exe') bro.get('https://www.baidu.com') #获取的连接页面 sleep(2) #标签定位 tag_input = bro.find_element_by_id('kw') tag_input.send_keys('人民币') #标签中输入值 sleep(2)btn = bro.find_element_by_id('su') btn.click() #标签点击事件 sleep(2)bro.quit() #退出
![](/assets/blank.gif)
![](/assets/blank.gif)
02.
![](/assets/blank.gif)
![](/assets/blank.gif)
from selenium import webdriver from time import sleep bro = webdriver.Chrome(executable_path='./chromedriver.exe')bro.get('https://xueqiu.com/') sleep(5)#执行js实现滚轮向下滑动 js = 'window.scrollTo(0,document.body.scrollHeight)' #两个参数一个是X轴,一个是y轴,此时用的是Y轴 bro.execute_script(js) sleep(2) bro.execute_script(js) sleep(2) bro.execute_script(js) sleep(2) bro.execute_script(js) sleep(2)a_tag = bro.find_element_by_xpath('//*[@id="app"]/div[3]/div/div[1]/div[2]/div[2]/a') a_tag.click() sleep(5) #获取当前浏览器页面数据(动态) print(bro.page_source) bro.quit()
![](/assets/blank.gif)
![](/assets/blank.gif)
PhantomJs及谷歌无头浏览器无可视化:
#PhantomJs是一款无可视化界面的浏览器(免安装)from selenium import webdriverfrom time import sleepbro = webdriver.PhantomJS(executable_path=r'C:\Users\Administrator\Desktop\爬虫+数据\爬虫day03\phantomjs-2.1.1-windows\bin\phantomjs.exe')bro.get('https://xueqiu.com/')sleep(2)bro.save_screenshot('./1.png')#执行js实现滚轮向下滑动 js = 'window.scrollTo(0,document.body.scrollHeight)'bro.execute_script(js)sleep(2)bro.execute_script(js)sleep(2)bro.execute_script(js)sleep(2)bro.execute_script(js)sleep(2)bro.save_screenshot('./2.png')# a_tag = bro.find_element_by_xpath('//*[@id="app"]/div[3]/div/div[1]/div[2]/div[2]/a')# bro.save_screenshot('./2.png')# a_tag.click() sleep(2)#获取当前浏览器页面数据(动态)print(bro.page_source)bro.quit()现在用的很少,知道即可 from selenium import webdriverfrom time import sleepfrom selenium.webdriver.chrome.options import Options# 创建一个参数对象,用来控制chrome以无界面模式打开 chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')bro = webdriver.Chrome(executable_path='./chromedriver.exe',options=chrome_options)bro.get('https://www.baidu.com')sleep(2)bro.save_screenshot('1.png')#标签定位 tag_input = bro.find_element_by_id('kw')tag_input.send_keys('人民币')sleep(2)btn = bro.find_element_by_id('su')btn.click()sleep(2)print(bro.page_source)bro.quit()谷歌无头浏览器
转载于:https://www.cnblogs.com/pythonz/p/10933858.html
爬虫之Selenium相关推荐
- 爬虫之selenium爬取斗鱼网站
爬虫之selenium爬取斗鱼网站 示例代码: from selenium import webdriver import timeclass Douyu(object):def __init__(s ...
- 爬虫之selenium控制浏览器执行js代码
爬虫之selenium控制浏览器执行js代码 selenium可以让浏览器执行我们规定的js代码,运行下列代码查看运行效果 import time from selenium import webdr ...
- 爬虫之selenium标签页的切换
爬虫之selenium标签页的切换 当selenium控制浏览器打开多个标签页时,如何控制浏览器在不同的标签页中进行切换呢?需要我们做以下两步: 获取所有标签页的窗口句柄 [获取窗口句柄,通过窗 ...
- Python爬虫之selenium库使用详解
Python爬虫之selenium库使用详解 本章内容如下: 什么是Selenium selenium基本使用 声明浏览器对象 访问页面 查找元素 多个元素查找 元素交互操作 交互动作 执行JavaS ...
- 爬虫篇——selenium(webdriver)进行用户登录并爬取数据)
爬虫篇--selenium(webdriver)进行用户登录并爬取数据 摘要 (一)创建browser对象 (二)用户登录 (三)数据爬取 摘要 本文主要介绍了如何通过selenium使用Chorme ...
- python爬虫之selenium,谷歌无头浏览器
python爬虫之selenium和PhantomJS 主要的内容 lenium hantomjs 无头浏览器 的懒加载 一 什么是selenium? 介绍 它是python中的一个第三方库,对外提供 ...
- [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- layui获取input信息_python爬虫—用selenium爬取京东商品信息
python爬虫--用selenium爬取京东商品信息 1.先附上效果图(我偷懒只爬了4页) 2.京东的网址https://www.jd.com/ 3.我这里是不加载图片,加快爬取速度,也可以用Hea ...
- python selenium 进入新标签页_python 爬虫之selenium可视化爬虫
文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...
- Python爬虫之selenium高级功能
Python爬虫之selenium高级功能 原文地址 表单操作 元素拖拽 页面切换 弹窗处理 表单操作 表单里面会有文本框.密码框.下拉框.登陆框等. 这些涉及与页面的交互,比如输入.删除.点击等. ...
最新文章
- 优化嵌套查询 || 优化OR条件
- 557. 反转字符串中的单词 III
- ActiveMQ安装笔记
- 【VS开发】CTimeSpan类
- 传递一个父id返回所有子id的用法,可用于删除父级以下的所有子级
- Windows下基于IIS服务的SSL服务器的配置
- ajaxSubmit、ajaxSubmit添加额外数据
- feign不能正常传递参数MultipartFile(文件)时的解决手段
- 零基础可以学python么
- 【.NET框架实战】IdentityServer4身份验证、授权
- 2016SDAU编程练习二1009
- 老板让我做研发负责人,谈谈我的想法和认知
- 河北计算机对口高考数学考试题,2015年河北省对口高考数学试题(含答案)
- 利用MFC库获取指定城市的天气实况
- 选秀节目打分,分为专家评委和大众评委
- 好东东-汉语词法分析系统ICTCLAS (Institute of Computing Technology, Chinese Lexical Analysis System)
- 计算机自培计划,个人年度自培计划
- 苹果cms微信对接php,苹果cmsV10微信公众号对接插件安装教程
- 使用SMTP协议,通过QQ邮箱发送邮件
- Kubernetes Kubelet 状态更新机制