Selenium+phanmJs 操作浏览器 爬取数据
什么是selenium?
是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作。
环境搭建
安装selenum:pip install selenium
获取某一款浏览器的驱动程序(以谷歌浏览器为例)
谷歌浏览器驱动下载地址:http://chromedriver.storage.googleapis.com/index.html
下载的驱动程序必须和浏览器的版本统一,大家可以根据http://blog.csdn.net/huilan_same/article/details/51896672中提供的版本映射表进行对应
1 from selenium import webdriver # 是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作。 2 import time 3 4 #创建一个浏览器对象,将驱动程序加载到浏览器中 5 bro=webdriver.Chrome(executable_path=r'D:\爬虫相关\资料\驱动程序\chromedriver_win32\chromedriver.exe') 6 bro.get('https://www.baidu.com') 7 time.sleep(3) 8 #定位百度的文本输入框 9 input_text=bro.find_element_by_id('kw') 10 #在文本框中录入一个关键字 11 input_text.send_keys('丝袜美女') 12 time.sleep(1) 13 #获取搜索id 14 btn=bro.find_element_by_id('su') 15 #执行点击事件 16 btn.click() 17 time.sleep(3) 18 #关掉浏览器 19 bro.quit()
Selenium爬虫代码
1 #基于phantomJs浏览器的代码示例 无界面 ,但是可以截图 2 from selenium import webdriver # 是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作。 3 import time 4 5 #创建一个浏览器对象,将驱动程序加载到浏览器中 6 bro=webdriver.PhantomJS(executable_path=r'D:\爬虫相关\资料\驱动程序\phantomjs-2.1.1-windows\bin\phantomjs.exe') 7 bro.get('https://www.baidu.com') 8 time.sleep(3) 9 #进行截图 10 bro.save_screenshot('1.png') 11 #定位百度的文本输入框 12 input_text=bro.find_element_by_id('kw') 13 #在文本框中录入一个关键字 14 input_text.send_keys('丝袜美女') 15 time.sleep(1) 16 #获取搜索id 17 btn=bro.find_element_by_id('su') 18 #执行点击事件 19 btn.click() 20 time.sleep(3) 21 bro.save_screenshot('2.png') 22 #打印页面数据 23 print(bro.page_source) 24 #关掉浏览器 25 bro.quit()
PhanmJs爬虫代码
1 #登录qq空间 2 bro = webdriver.Chrome(executable_path=r'D:\爬虫相关\资料\驱动程序\chromedriver_win32\chromedriver.exe') 3 bro.get('https://qzone.qq.com/') 4 #观察某个标签如果是存在一个frame中的话,必须使用switch_to进行指定 5 bro.switch_to.frame('login_frame') 6 bro.find_element_by_id('switcher_plogin').click() 7 userName = bro.find_element_by_id('u') 8 userName.send_keys('qq号') 9 pwd = bro.find_element_by_id('p') 10 pwd.send_keys('qq密码') 11 time.sleep(2) 12 btn = bro.find_element_by_id('login_button') 13 btn.click() 14 time.sleep(5) 15 bro.quit()
自动登录QQ空间
1 #动态造作浏览器的滚动条获取豆瓣电影中更多的电影详情数据 2 bro=webdriver.Chrome(executable_path=r'D:\爬虫相关\资料\驱动程序\chromedriver_win32\chromedriver.exe') 3 bro.get('https://movie.douban.com/typerank?type_name=%E5%96%9C%E5%89%A7&type=24&interval_id=100:90&action=') 4 time.sleep(2) 5 #获取页面的滚动条 6 bro.execute_script('window.scrollTo(0,document.body.scrollHeight)') 7 time.sleep(2) 8 page_text=bro.page_source 9 with open('./豆瓣.html','w',encoding='utf-8')as fp: 10 fp.write(page_text)
动态点击滚动条获取豆瓣电影数据
转载于:https://www.cnblogs.com/duanhaoxin/p/10111002.html
Selenium+phanmJs 操作浏览器 爬取数据相关推荐
- python selenium不启动浏览器 爬取数据的方法
为浏览器驱动 添加一个无头参数.可以实现不开启浏览器 爬取网页 最新版的selenium已经不再支持PhantomJS 源码如下: # -*- coding:utf-8 -*-from seleniu ...
- Python爬虫:Selenium模拟Chrome浏览器爬取淘宝商品信息
对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...
- Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息
Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...
- python获取登录按钮_Python:Selenium模拟Chrome浏览器抓取淘宝商品信息
对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...
- Python使用selenium模拟浏览器爬取某查查数据
在使用爬虫爬取某查查的数据的时候,会被识别到,进行反爬限制,最后使用selenium模拟浏览器进行爬取. 这里解决办法主要使用selenium打开浏览器,模拟人操作进行爬取,代码: ua = 'Moz ...
- Python实训day07am【爬取数据接口、webdriver、自动化测试工具selenium】
Python实训-15天-博客汇总表 目录 1.网络爬虫-课后练习题 1.1.写法1 1.2.写法2 2.Selenium自动化测试工具 2.1.安装工具 2.2.命令行操作 直接爬取HTML (30 ...
- Python爬虫实战使用scrapy与selenium来爬取数据
系列文章目录 实战使用scrapy与selenium来爬取数据 文章目录 系列文章目录 前言 一.前期准备 二.思路与运行程序 1.思路 2.运行程序 三.代码 1.代码下载 2.部分代码 总结 前言 ...
- python采集直播间数据_Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例...
本文实例讲述了Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息.分享给大家供大家参考,具体如下: import time from multiprocessing import Poo ...
- selenium模拟浏览器-----爬取马蜂窝地区全部景点
为什么使用selenium 在前面的文章中,我们了解了Ajax的分析和爬取方式,但是,对于参数加密复杂的网页来说,用之前构造请求头的方法来爬取数据未免显得困难,所以这里我们选择了使用selenium. ...
最新文章
- rsync单项同步文件
- 台风怎么看内存颗粒_生态板、密度板、颗粒板各有好处,看你怎么用了!
- Algorithm之EM:Expectation Maximization简介、代码实现
- 一个简单的小技巧,监控网页所有动态标签创建的调用处
- 有些图,只要看错一眼就再也回不去了!
- 2018/7/16-纪中某C组题【jzoj4024,jzoj4025,jzoj2136,jzoj2137】
- mysql 选择特定的表_MySQL选择具有多个特定列的所有表
- C#LeetCode刷题之#884-两句话中的不常见单词(Uncommon Words from Two Sentences)
- docker 安装
- 精心收集的jQuery常用的插件1000
- pktgen-dpdk 使用笔记
- 室内 Beacon定位室外 GPS 定位 大型场馆融合定位方案
- 【bzoj4094】【洛谷3097】Optimal Milking
- 自定义拍照时 拍照界面_女研究生劝父亲盖房时把围墙退后三尺,新房成网红,一天20人拍照...
- Html5开发小游戏看你有多色
- 我终于解救了系统盘ORZ
- php-resque 简单的php消息队列
- 种类并查集(POJ1703)
- 社区社群运营,如何打造火爆营销的方法?
- C# 超级简单的Telnet (TcpClient)客户端
热门文章
- 多线程导出excel_【开源资讯】MyExcel 3.7.0 发布,屏蔽多线程处理细节
- 计算机二级日月潭操作步骤,计算机二级考试真题-PPT-文小雨-台湾日月潭介绍
- date转换成string hive_[转] String to Date conversion in hive - 在 Hive 中各种字符串转换成日期格式...
- 私有5g网络_欧洲通过FUDGE5G的启动来支持工业4.0的云原生私有5G
- 执行transact mysql_创建数据库失败((Microsoft.SqlServer.Smo))执行Transact-SQL
- 我们究竟还要学习哪些Android知识?专题解析
- python【Numpy科学计算库】连女朋友都会用的Numpy(真の能看懂~!)
- Android移动开发之【Android实战项目】activity生命周期与Java中@Override的作用
- 谷歌生物医学专用翻译_文献翻译|知云翻译,写论文必备~
- springboot中pom文件详解