爬虫使用无头浏览器

python + selenium + webdriver

chrome ff opera等浏览器都有webdriver提供。

可惜还是依赖selenium。

以下以chrome为例。

1 centos7上安装chrome

centos6.5不支持。已无法安装现在的chrome。

win10可以用。所以本地调试没有问题。

1. 配置yum

在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repo

#vim /ect/yum.repos.d/google-chrome.repo

写入如下内容:

[google-chrome]

name=google-chrome

baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch

enabled=1

gpgcheck=1

gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

保存并退出:


1

2


1.按 ESC 退出编辑模式(回到命令模式)

2.输入 :wq! 保存并退出

2.安装google chrome浏览器

Google官方源安装:


1


#yum -y install google-chrome-stable

Google官方源可能在中国无法使用,导致安装失败或者在国内无法更新,可以添加以下参数来安装:  


1


#yum -y install google-chrome-stable --nogpgcheck

2 下载chromedriver

版本间并不兼容

3 python 下简单使用

from selenium import webdriver

#不指定路径会在环境变量里找

driver = webdriver.Chrome(‘/path/to/chromedriver‘)

driver.get(‘http://www.google.com/xhtml‘);

search_box = driver.find_element_by_name(‘q‘)

search_box.send_keys(‘ChromeDriver‘)

search_box.submit()

search_bot.get_attribute("outerHTML")

#窗口关闭

driver.quit()

4 无头模式

from selenium.webdriver.chrome.options import Options

chrome_options = Options()

chrome_options.add_argument(‘--headless‘)

driver = webdriver.Chrome(chrome_options=chrome_options,executable_path=‘D:\Program Files\chromedriver\chromedriver.exe‘)

centos7使用中的问题

安装chrome和virtualbox的增强功能后无法再进入用户登录页面

网上说是GNOME的兼容性问题,进入终端yum upgrade后才能进。所用版本更新了大概1G,内核也升级了

注意需要切换到一个非root用户才能使用chromedriver,原因可能是chrome的启动策略要求非root用户,但是从打印的异常里是看不到这个原因的。。。

网上说到的其他可能是chromedriver和chrome的版本对应关系

5 如何和pyspider对接

1 直接嵌入pyspider

2 用python或者java启动一个独立的程序,提供rpc调用或者restapi

后者比较类似目前phantomjs的使用形式。

考虑并发性能,用springboot搭建,通过restapi访问,维持一个webdriver

池提供服务。

nodejs + puppeteer

谷歌官方提供的node库,通过devtools协议控制

1 安装

npm i puppeteer

安装自带chromium,由于墙的原因可能下载失败

原文地址:https://www.cnblogs.com/maikatsura/p/10565989.html

时间: 2024-10-11 19:19:10

爬虫使用无头浏览器的相关文章

爬虫之 图片懒加载, selenium , phantomJs, 谷歌无头浏览器

一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python # -*- coding:utf-8 -*- import requests from lxml import etree if __name__ == "__main__": url = 'http://sc.chinaz.com/tupian/gudianmeinvtupian.html' headers = { 'User-

爬虫04 /asyncio、selenium\规避检测、动作链、无头浏览器

目录 4.asyncio.selenium\规避检测.动作链.无头浏览器 1. 协程asyncio 2. aiohttp多任务异步爬虫 3. selenium的使用 4. 动作链 5. 12306模拟登录分析 6. selenium规避风险 7. 无头浏览器 总结: 4.asyncio.selenium\规避检测.动作链.无头浏览器 1. 协程asyncio 协程基础 特殊的函数 就是async关键字修饰的一个函数的定义 特殊之处: 特殊函数被调用后会返回一个协程对象 特殊函数调用后内部的程序语

07-selenium、PhantomJS(无头浏览器)

selenium(自动化测试工具可用于在爬虫中解决js动态加载问题) 简介(本质就是模仿浏览器工作) Selenium 是什么?一句话,自动化测试工具.它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试.换句话说叫 Selenium 支持这些浏览器驱动.话说回来,PhantomJS(无头浏览器)不也是一个浏览器吗,那么 Selenium 支持不?答案是肯定的,这样二

爬虫-使用模拟浏览器操作(截取网页)

最近遇到一个问题就是,如何模拟真实浏览器行为然后截取显示的网页. 方案 模拟登陆网站或者直接使用cookie登陆. 对指定页面按钮进行点击刷新页面,截取网页. 我们使用selenium库来操作浏览器驱动,即执行浏览器相应的驱动命令,实现相应的浏览器操作. 准备工作 selenium库 浏览器自动化测试框架,其作用是通过操作浏览器驱动来控制浏览器行为,达到模拟真实用户操作浏览器的效果.原理为自动化测试python脚本-->浏览器driver -->浏览器.官网 python中文文档 python

第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

第三百三十三节,web爬虫讲解2-Scrapy框架爬虫-Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url.cookie.回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其

你是否了解谷歌的无头浏览器?

无头浏览器即headless browser,是一种没有界面的浏览器.既然是浏览器那么浏览器该有的东西它都应该有,只是看不到界面而已. Python中selenium模块中的PhantomJS即为无界面浏览器(无头浏览器):是基于QtWebkit的无头浏览器. 原文地址:https://www.cnblogs.com/sea-stream/p/11192547.html

无头浏览器

phantomJS是一款无头浏览器, 之前我们通过selenium操作PhantomJS来完成动态加载数据的加载, 现在PhantomJS已经停止更新,  不过可以使用谷歌浏览器的无头浏览器来代替PhantomJS来完成上述操作 使用谷歌无头浏览器的实例代码如下: from selenium import webdriver from selenium.webdriver.chrome.options import Options from time import sleep chrome_op

CentOS7下python3 selenium3 使用Chrome的无头浏览器 截取网页全屏图片

前言 selenium是一个模拟浏览器的自动化执行框架,但是如果每次执行都要打开浏览器来处理任务的话,效率上都不高.最重要的是如果安装在Centos7服务器环境下,打开浏览器来模拟操作是更加不合适的,尤其是碰上需要截取网页图片这样的需求. 这时候就要考虑使用Chrome的无头浏览器模式了.所谓的无头浏览器模式也就是不需要打开浏览器,但是却可以起到模拟打开浏览器的执行效果,一切无界面执行. 下面来看看如果安装部署到执行. 1.安装chrome 1.1 添加google的repo源 vim /etc

selenium3使用谷歌无头浏览器、截图

无头浏览器即为Headless Browser,是没有图形用户界面的web浏览器,通常是通过编程或命令行界面来控制.在正常使用selenium的时候,你必须担心CPU和/或内存的使用.这两种方式都与必须从被请求的URL中显示显示的图形的浏览器相关联.当使用一个无头的浏览器时,我们不用担心这个.因此,我们可以预期我们编写的脚本的内存消耗会降低,执行速度也会更快.当有的人说,那我没法看到浏览器响应的过程,我不能在这边盯着浏览器自己执行我的用例...喔犒!写自动化本来就是为了效率的,做截图就可以了嘛,