亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Headless模式下的運行Selenium
作者:網絡轉載 發布時間:[ 2017/5/15 11:53:27 ] 推薦標簽:功能測試 Selenium

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

  在這里引申出1個 headless mode 的概念。而phantomjs與我們常用瀏覽器的區別是,它不需要GUI界面也可以運行,因此更為節省資源。
  實際上,對于動態數據的抓取問題對我來說已經是很多年之前的事情,無論是基于Phantomjs的 casperjs ,還是使用Qt、GTK這樣的GUI包編寫瀏覽器來進行操作,或者是這里要介紹的selenium的方式,都已經成為過去式了。
  而自從在新公司從事自然語言處理方面的工作后,對于這樣的問題實際上基本上都懶得動手了,不如讓同事去做吧。
  大概在1個月前,之前公司坐我隔壁的那個哥們寫了1個分布式的爬蟲框架(實際上關于這方面,個人覺得完全沒有必要,流行的scrapy和pyspider那個好用)時遇到了這樣1個問題,當時他在selenium中使用Phantomjs對某個頁面進行抓取,然后發現有些東西使用Phantomjs抓取不下來,然后只要使用firefox的方式來進行。這個哥們的博客可以 點擊 。
  而在不久前,chrome宣布支持 headless模式 ,而后firefox跟隨的新聞,再次勾起我無盡的回憶。
  實際上,phantomjs這個工具對于Python的人來說很不習慣,而且還有一些莫名其妙的問題。那么,我們來談談在Firefox和Chrome瀏覽器不原生支持headless模式下,如何使用selenium來實現headless模式進行動態數據的抓取。
  在這里為了方便說明,我們在Linux環境下進行操作,使用的版本如下:
  Centos==6.8
  Python==2.7.10
  selenium==2.53.0
  Firefox==45.0
  在Linux中有1個很好用的工具xvfb,它是1個X服務可以用于在沒有顯示器的硬件和物理輸入設備上運行,詳細的操作可以 參考 。而關于X服務的內容,請自行百度。比較常見的例子在ssh中進行X11轉發。
  可以看到,在這里我們需要借助xvfb的方式來實現所謂的headless模式,實際上這個操作10分鐘完成了。
  安裝必需的軟件包
  在這里,我們通過如下的方式安裝需要的軟件包:
  [cat@localhost ~]$ sudo yum install xdg-utils xorg-x11-server-Xvfb xorg-x11-xkb-utils
  如果你使用的是基于Debian的系統,比如Ubuntu,那么對應的安裝方式可能為:
  sudo aptitude install xdg-utils xvfb x11-xkb-utils
  安裝xvfb的綁定
  安裝完成xvfb綁定后,一般情況下我們會使用命令的方式來開啟虛擬顯示。而由于本人比較懶是1個特點,因此我們直接將其與我們的腳本一起集成在一起。
  在這里,我們安裝1個 xvfbwrapper 的庫,這個庫用于在你的Python中開啟和關閉xfvb會話。
  在這里,我們直接通過pip進行安裝:
  pip install xvfbwrapper
  編寫對應的代碼
  安裝完綁定依賴后,我們終于可以愉快的開啟編寫代碼了,在這里我們先引入對應的模塊:
  from xvfbwrapper import Xvfb
  接著我們實例化1個實例:
  xvfb = Xvfb()
  接著我們可以開啟及關閉其其會話了:
#!/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進行集成,在這里由于時間的關系,簡單的用于獲取個人博客上的標題。
  下面我們進行測試:
  [cat@localhost ~]$ python headless.py
  Start...
  The Kite in the wind
  Clean...
  發現其可以正常的運行。可以說,簡單到沒有朋友。

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 欧美午夜性春猛交 | 91妖精视频| 亚洲a在线播放 | 天天影视色香欲综合网网站麻豆 | 久久精品免费播放 | 天天射久久 | 亚洲国产一区在线观看 | 偷亚洲偷国产欧美高清 | 久久综合综合久久狠狠狠97色 | 欧美日韩高清观看一区二区 | 精品中文字幕一区在线 | 亚洲色图制服诱惑 | 看黄色一级视频 | vr欧美乱强伦xxxxx | 福利一区二区在线观看 | 日韩视频www| 84pao国产成视频免费播放 | 中文字幕亚洲欧美日韩高清 | 一个人看的www片免费视频中文 | 欧美极度另类 | 成人影院在线观看免费 | 午夜视频免费在线 | 中国一级特黄高清免费的大片 | 99在线精品视频在线观看 | 国内外成人免费视频 | 樱花aⅴ一区二区三区四区 影音先锋色69成人资源 | 天天摸天天爽天天碰天天弄 | 精品国产91乱码一区二区三区 | 国内精品福利 | 天天躁夜夜躁狠狠躁2021西西 | 日韩不卡手机视频在线观看 | 亚洲精品一二三四 | 国产高清一级片 | 午夜精品福利视频 | 免费国产a国产片高清 | 大片免费播放器免费观看 | 最近中文字幕大全免费版在线 | 性色生活片在色在线观看 | 欧美一区二区在线观看视频 | 波多野野结衣1区二区 | 欧美xxxxxxxxxxxxx|