chrome 无头浏览器的使用
在linux服务器上安装chrome :
ubuntu:
下载页面https://www.chrome64bit.com/index.php/google-chrome-64-bit-for-linux
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 下载
sudo apt-get install libxss1 libappindicator1 libindicator7 安装依赖
sudo dpkg -i google-chrome*.deb 这条语句可能报错,下条命令将修复它
sudo apt-get install -f
google-chrome 查看版本号
centos:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 下载
yum localinstall google-chrome-stable_current_x86_64.rpm 在当前目录下使用本地安装,yum会自动分析依赖,完成安装
headless chrome的基本操作:https://developers.google.com/web/updates/2017/04/headless-chrome
启用无头chrome访问网页并打印页面 --dump-dom用于打印页面的document.body.innerHTML到标准输出:
chrome --headless --disable-gpu --dump-dom https://www.baidu.com/
截取网页截图, --screenshot 将会截取网页截图并保存为当前目录的screenshot.png文件:
chrome --headless --disable-gpu --screenshot --window-size=1280,1696 https://www.baidu.com
使用代理 --proxy-server=http://ip:port 访问页面,并保存截图
chrome --headless --disable-gpu --screenshot --proxy-server=socks5://127.0.0.1:1080 https://www.google.com
python通过selenium使用chrome headless :
下载chromedriver, 页面地址 http://npm.taobao.org/mirrors/chromedriver/71.0.3578.80/
由于安装的chrome是 71.0.3578.98版本的,选了个最接近的chromedriver。
wget http://npm.taobao.org/mirrors/chromedriver/71.0.3578.80/chromedriver_linux64.zip
在window上解压后将chromedriver文件上传到/usr/bin/目录下
pip install selenium
代码示例:
from selenium import webdriver
PROXY='http://ip:port' #或 PROXY=’socks5://ip:port'
my_options=webdriver.ChromeOptions()
my_options.add_argument('--headless') #添加无头参数
my_options.add_argument('--disable-gpu') #添加无头参数
my_options.add_argument('--no-sandbox') #添加无头参数
#my_options.add_argument('lang=zh_CN.UTF-8')
my_options.add_argument('--allow-running-insecure-content') #设置proxy时添加的额外参数,允许不安全的证书
my_options.add_argument('--ignore-certificate-errors') #设置proxy时添加的额外参数,允许不安全的证书
my_options.add_argument("user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'") #设置用户代理
caps = DesiredCapabilities.CHROME.copy()
caps['proxy']={'httpProxy':PROXY, #添加代理IP proxy
'ftpProxy':PROXY,
'sslProxy':PROXY,
'noProxy':None,
'proxyType':'MANUAL',
'class':'org.openqa.selenium.Proxy',
'autodetect':False}
caps['acceptSslCerts'] = True #设置允许不安全的证书
caps['acceptInsecureCerts'] = True
bs=webdriver.Chrome(chrome_options=my_options,executable_path='/usr/bin/webdriver',desired_capabilities=caps)
bs.get('https://www.baidu.com')
chrome_options : ChromeOptions()对象
executable_path : chromedriver的绝对路径
desired_capabilities :一般为对应浏览器的DesiredCapabilities的copy(),避免更改默认设置
本地shadowsocks安装 pip install shadowsocks
配置shadowsocks连接参数 ,创建文件shadowsocks.json
{
"server":"153.234.1.5",
"server_port":1108,
"local_address": "0.0.0.0",
"local_port":1018
"password":"sdsewedxxf#",
"timeout":300,
"method":"chacha20",
"fast_open": false
}
启动shadowsocks客户端 sslocal -c shadowsocks.json -d start
-d 表示后台启动, -c表示使用文件shadowsocks.json中的配置
chrome 无头浏览器的使用的更多相关文章
- webdriver(chrome无头浏览器)
'''chrome无头浏览器''' from selenium.webdriver.chrome.options import Options # 导入相应的类 from selenium impor ...
- selenium 无头浏览器headless browser
无头浏览器,即没有界面的浏览器,浏览器该有的功能特性都有. if browser.lower() == "chrome": # 无头浏览器 chrome_opt = webdriv ...
- Selenium 启动无头浏览器,只有chrome 和 firefox的,没有IE
使用无头浏览器,可以避免掉不确定的弹出框对脚本稳定性的影响,还能在脚本执行过程中省略掉了css 加载的时间. 以下是Selenium 启动无头浏览器的方法,只有chrome 和 firefox的. p ...
- selenium+谷歌无头浏览器爬取网易新闻国内板块
网页分析 首先来看下要爬取的网站的页面 查看网页源代码:你会发现它是由js动态加载显示的 所以采用selenium+谷歌无头浏览器来爬取它 1 加载网站,并拖动到底,发现其还有个加载更多 2 模拟点击 ...
- 无头浏览器phantomJS
selenium: 有头浏览器的代表(selenium+python也可实现静默运行 引入python的一个包,包叫:虚拟屏幕pyvirtualdisplay) PhantomJS : 无头浏览器的代 ...
- 基于Python, Selenium, Phantomjs无头浏览器访问页面
引言: 在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛,本文将梳理其中的若干概念和思路,并基于代码示例其中的若干使用技巧. 1. 无头浏览器 通常大家在在打开网页的工具就是浏览器,通过界面上输 ...
- Python对Selenium调用浏览器进行封装包括启用无头浏览器,及对应的浏览器配置文件
""" 获取浏览器 打开本地浏览器 打开远程浏览器 关闭浏览器 打开网址 最大化 最小化 标题 url 刷新 Python对Selenium封装浏览器调用 ------b ...
- 爬虫之 图片懒加载, selenium , phantomJs, 谷歌无头浏览器
一.图片懒加载 懒加载 : JS 代码 是页面自然滚动 window.scrollTo(0,document.body.scrollHeight) (重点) bro.execute_ ...
- 浏览器控制之 selenium,phantomJs谷无头浏览器
目录 浏览器控制之 selenium,phantomJs谷无头浏览器 selenium phantomJs 需求是尽可能多的爬取豆瓣网中的电影信息 谷歌无头浏览器 浏览器控制之 selenium,ph ...
随机推荐
- android源码编译出现No private recovery resources for TARGET_DEVICE解决方法
mmm或mm出现以下提示的解决方法:Terminal log:No private recovery resources for TARGET_DEVICE xxxxxxmake: Entering ...
- day17
包什么是包 包的本质是文件夹为什么使用包 函数可以使得同一个文件中代码结构更清晰 木块(py文件)是以文件形式来组织代码结构 如果文件越来越多管理起来也不方便,所以需要使用文件夹来管理.从文件夹级别来 ...
- python 环境安装和卸载1
同事换了新机器,系统从win7变为了win10,因此需要重新安装python环境啦!不废话,直奔主题. A 安装 一.进入python官网 www.python.org 进入downloads-&g ...
- JsTree 最详细教程及完整实例
JsTree是一个jquery的插件,它提交一个非常友好并且强大的交互性的树,并且是完全免费或开源的(MIT 许可).Jstree技持Html 或 json格式的的数据, 或者是ajax方式的动态请求 ...
- 关于 diff 和patch
参考: https://blog.csdn.net/zygblock/article/details/53384862 diff和patch是 版本控制 git 的不可缺少的工具 diff 是用来比较 ...
- js三元表达式
条件 ? true的时候执行 : false时候执行 const x = 20; let answer; if (x > 10) { answer = 'greater than 10'; } ...
- ssh整合oracle数据源报错????
在SSH整合的时候,引入oracle的pom节点,但是报错,因为没有权限,要手动将Oracle.jar注册到本地仓库 保证你电脑有maven环境,测试 方式为 cmd---->mvn -vers ...
- kafka知识点
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
- UI组件--element-ui合计行在横向滚动条下面的解决方法
使用element-ui合计功能, 因列数较多, 产生横向滚动条: 但是合计行却在滚动条下面, 拖动滚动条合计行不会跟着横向滚动. 在当前页面添加以下样式: <style lang='less' ...
- es6开发环境搭建,babel 将es6转化成es5
工欲善其事,必先利其器.所以我们第1节就是搭建一个基本的ES6开发环境.现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6的语法,这就需要我们把ES6的语法自动的转变成E ...