成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

在headless模式下運行selenium

MoAir / 3467人閱讀

摘要:而在不久前宣布支持模式而后跟隨的新聞再次勾起我無盡的回憶。那么我們就來談?wù)勗诤蜑g覽器不原生支持模式下如何使用來實現(xiàn)模式進行動態(tài)數(shù)據(jù)的抓取。比較常見的例子在中進行轉(zhuǎn)發(fā)。下面我們進行測試發(fā)現(xiàn)其可以正常的運行。

原文地址:

http://52sox.com/python-use-h...

在Python中進行瀏覽器測試時,一般我們會選擇selenium這樣的庫來簡化我們工作量。而有些時候,為了對一些動態(tài)數(shù)據(jù)進行抓取,我們會選擇PhantomJs這樣的工具。而在selenium中我們也可以集成Phantomjs對應(yīng)的驅(qū)動,可以很方便的進行對應(yīng)的操作。
在Phantomjs的官方網(wǎng)站上,我們可以看到類似如下的字樣:

在這里就引申出1個headless mode的概念。而phantomjs與我們常用瀏覽器的區(qū)別就是,它不需要GUI界面也可以運行,因此更為節(jié)省資源。
實際上,對于動態(tài)數(shù)據(jù)的抓取問題對我來說已經(jīng)是很多年之前的事情,無論是基于Phantomjs的casperjs,還是使用Qt、GTK這樣的GUI包編寫瀏覽器來進行操作,或者是這里要介紹的selenium的方式,都已經(jīng)成為過去式了。
而自從在新公司從事新的工作后,對于這樣的問題實際上基本上都懶得動手了,不如讓同事去做吧。
大概在1個月前,之前公司坐我隔壁的那個哥們寫了1個分布式的爬蟲框架(實際上關(guān)于這方面,個人覺得完全沒有必要,流行的scrapy和pyspider那個好用)時遇到了這樣1個問題,當(dāng)時他在selenium中使用Phantomjs對某個頁面進行抓取,然后發(fā)現(xiàn)有些東西使用Phantomjs抓取不下來,然后只要使用firefox的方式來進行。其博客可以點擊。
而在不久前,chrome宣布支持headless模式,而后firefox跟隨的新聞,再次勾起我無盡的回憶。
實際上,phantomjs這個工具對于Python的人來說很不習(xí)慣,而且還有一些莫名其妙的問題。那么,我們就來談?wù)勗贔irefox和Chrome瀏覽器不原生支持headless模式下,如何使用selenium來實現(xiàn)headless模式進行動態(tài)數(shù)據(jù)的抓取。
在這里為了方便說明,我們在Linux環(huán)境下進行操作,使用的版本如下:

Centos==6.8
Python==2.7.10
selenium==2.53.0
Firefox==45.0

在Linux中有1個很好用的工具xvfb,它是1個X服務(wù)可以用于在沒有顯示器的硬件和物理輸入設(shè)備上運行,詳細的操作可以參考。而關(guān)于X服務(wù)的內(nèi)容,請自行百度。比較常見的例子在ssh中進行X11轉(zhuǎn)發(fā)。
可以看到,在這里我們需要借助xvfb的方式來實現(xiàn)所謂的headless模式,實際上這個操作就10分鐘就完成了。

安裝必需的軟件包

在這里,我們通過如下的方式安裝需要的軟件包:

[cat@localhost ~]$ sudo yum install xdg-utils xorg-x11-server-Xvfb xorg-x11-xkb-utils

如果你使用的是基于Debian的系統(tǒng),比如Ubuntu,那么對應(yīng)的安裝方式可能為:

sudo aptitude install xdg-utils xvfb x11-xkb-utils
安裝xvfb的綁定

安裝完成xvfb綁定后,一般情況下我們會使用命令的方式來開啟虛擬顯示。而由于本人比較懶是1個特點,因此我們直接將其與我們的腳本一起集成在一起。
在這里,我們安裝1個xvfbwrapper的庫,這個庫用于在你的Python中開啟和關(guān)閉xfvb會話。
在這里,我們直接通過pip進行安裝:

pip install xvfbwrapper
編寫對應(yīng)的代碼

安裝完綁定依賴后,我們終于可以愉快的開啟編寫代碼了,在這里我們先引入對應(yīng)的模塊:

from xvfbwrapper import Xvfb

接著我們實例化1個實例:

xvfb = Xvfb()

接著我們就可以開啟及關(guān)閉其其會話了:

#!/usr/bin/env python

from selenium import webdriver
from xvfbwrapper import Xvfb

xvfb = Xvfb(width=1280,height=720)
xvfb.start()
print("Start...")
browser = webdriver.Firefox()
browser.get("http://52sox.com")
title = browser.title
print(title)
print("Clean...")
browser.close()
xvfb.stop()

在這里,我們將其與selenium進行集成,在這里由于時間的關(guān)系,就簡單的用于獲取個人博客上的標題。
下面我們進行測試:

[cat@localhost ~]$ python headless.py 
Start...
The Kite in the wind
Clean...

發(fā)現(xiàn)其可以正常的運行??梢哉f,簡單到?jīng)]有朋友。

參考文章:

http://tobyho.com/2015/01/09/...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38591.html

相關(guān)文章

  • 使用瀏覽器的HEADLESS模式進行自動化測試

    摘要:了解模式指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動化測試和爬蟲領(lǐng)域有著廣泛的應(yīng)用。實踐使用瀏覽器的模式進行自動化測試,你需要先滿足以下前提運行環(huán)境或者或者最新版已加入萬事俱備,廢話不多說我們直接上演示代碼。 了解HEADLESS模式 HEADLESS BROWSER 指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動化測試和爬蟲領(lǐng)域有著廣泛的應(yīng)用。 例如你想在網(wǎng)頁上運行一些測試,從網(wǎng)頁...

    lanffy 評論0 收藏0
  • 使用 headless chrome進行測試

    注:文章聚合了現(xiàn)在 headless chrome 介紹和使用方式 包含了三個部分 chrome 在 mac 上的安裝和簡單使用(來自官方) 利用 selenium 的 webdrive 驅(qū)動 headless chrome(自己添加) 利用Xvfb方式實現(xiàn)偽 headless chrome 概念 Headless模式解決了什么問題: 自動化工具例如 selenium 利用有頭瀏覽器進行測試...

    ephererid 評論0 收藏0
  • Scrapy+Chromium+代理+selenium

    摘要:通常的解決辦法是通過抓包,然后查看信息,接著捕獲返回的消息。為了減少因為安裝環(huán)境所帶來的煩惱。代理因為我們已經(jīng)用替換了。我們需要直接用來處理代理問題。根據(jù)上面這段代碼,我們也不難猜出解決代理的方法了。 上周說到scrapy的基本入門。這周來寫寫其中遇到的代理和js渲染的坑。 js渲染 js是爬蟲中畢竟麻煩處理的一塊。通常的解決辦法是通過抓包,然后查看request信息,接著捕獲ajax...

    Pocher 評論0 收藏0
  • 不可錯過的自動化測試框架:robotframework之WebDriver功能配置

    摘要:使用圖設(shè)置瀏覽器語言為英文方法圖設(shè)置瀏覽器語言為英文方法結(jié)果功能該功能最常見的用法就是使用該功能配置屏蔽網(wǎng)站對爬蟲等自動化程序的檢測。 rf(即robotframework)是自動化測試常用的框架之一,在前端自動化測試中常與webdriver驅(qū)動器,以及rf的selenium2library...

    zhouzhou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<