爬虫使用无头浏览器


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使用中的问题

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

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

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

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

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值