CentOS 6.x 搭建:Headless Chrome + ChromeDriver + Selenium基于瀏覽器的爬蟲環(huán)境,要放棄還是重裝系統(tǒng)

【轉載請注明出處】:https://blog.csdn.net/huahao1989/article/details/107890747

Chrome官方網站已經說的很清楚窖梁,不再支持6.x的CentOS恐锣,至少7以上。 可是很多時候我們使用的服務器版本并不能隨便升級部念,即便已經很難受了弃酌,但是還得繼續(xù)使用低版本,裝起來那是真叫一個費勁印机,還好就是費勁一些矢腻,最終還是可以裝成功的。

什么是 Headless Chrome

Headless Chrome 是 Chrome 瀏覽器的無界面形態(tài)射赛,可以在不打開瀏覽器的前提下多柑,使用所有 Chrome 支持的特性運行你的程序疤孕。相比于現代瀏覽器耕魄,Headless Chrome 更加方便測試 web 應用零酪,獲得網站的截圖奋刽,做爬蟲抓取信息等驹碍。相比于出道較早的 PhantomJS茫藏,SlimerJS 等碴裙,Headless Chrome 則更加貼近瀏覽器環(huán)境稠炬。

CentOS版本

lsb_release -a
image.png

最新版本Google-Chrome安裝

CentOS/RedHat 7以上安裝google-chrome可以完全參考https://intoli.com/blog/installing-google-chrome-on-centos/ (6及以下版本不適用)沮趣。

指定yum源

服務器應該指定合適yum源屯烦,避免找不到某些依賴的尷尬。
修改 /etc/yum.repos.d/CentOS-Base.repo房铭,可以使用阿里的yum repo:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
安裝google-chrome

根據https://intoli.com/blog/installing-google-chrome-on-centos/ 驻龟,執(zhí)行命令:

curl https://intoli.com/install-google-chrome.sh | bash

腳本會自動檢測當前版本安裝chrome所缺失的依賴包并下載。


image.png

檢查是否還缺乏依賴:

ldd /opt/google/chrome/chrome | grep "not found"

返回為空缸匪,說明CentOS下chrome依賴問題基本解決翁狐。

運行chrome

執(zhí)行

google-chrome-stable --no-sandbox --headless --disable-gpu --screenshot https://www.suning.com/。

訪問成功凌蔬,在當前目錄會生成截圖screenshot.png露懒,如果報錯

[0100/000000.311368:ERROR:broker_posix.cc(43)] Invalid node channel message

則需要安裝依賴包:

yum install  \
 ipa-gothic-fonts \
 xorg-x11-fonts-100dpi \
 xorg-x11-fonts-75dpi \
 xorg-x11-utils \
 xorg-x11-fonts-cyrillic \
 xorg-x11-fonts-Type1 \
 xorg-x11-fonts-misc -y 

最新版本Chromedriver安裝

當前的chrome版本是 google-chrome-stable-72.0.3626.109-1.x86_64,chromedrive的官網是https://sites.google.com/a/chromium.org/chromedriver/downloads

image.png

下載地址https://chromedriver.storage.googleapis.com/2.46/chromedriver_linux64.zip
或者選擇taobao鏡像下載http://npm.taobao.org/mirrors/chromedriver/
鏡像下載地址http://npm.taobao.org/mirrors/chromedriver/2.46/chromedriver_linux64.zip

解壓后部署到/opt/drivers目錄下砂心,嘗試運行:

./chromedriver 
Starting ChromeDriver 72.0.3626.7 (efcef9a3ecda02b2132af215116a03852d08b9cb) on port 9515
Only local connections are allowed.
[1550143530.011][SEVERE]: CreatePlatformSocket() returned an error, errno=0: Address family not supported by protocol (97)

另外要修改/etc/hosts懈词,綁定127.0.0.1 localhost,否則辩诞,Java Selenium運行時chromedriver可能因為找不到localhost報超時異常

安裝selenium

  • 安裝 Python 并配置好環(huán)境變量
    shell輸入:python -V 出現對應版本號即安裝成功坎弯!
  • 安裝 pip
    python默認自帶 pip 在安裝目錄的scripts目錄下,自行配置至環(huán)境變量即可,配置好后shell輸入:pip -V 出現對應版本號即安裝成功荞怒!
  • 安裝 selenium
    shell輸入:pip install selenium 提示:Successfully installed selenium-即安裝成功!
python
>>>from selenium import webdriver
>>>driver = webdriver.Chrome()
>>>driver.get('https://www.baidu.com')

已經可以了秧秉,正常寫python腳本即可褐桌。

搭建環(huán)境時遇到的問題

1、/lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./chromedriver)

#查看系統(tǒng)版本
cat /etc/redhat-release 
#查看glibc支持的版本
strings /lib64/libc.so.6 |grep GLIBC_

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz 
wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz 
tar -xvf  glibc-2.14.tar.gz 
tar -xvf  glibc-ports-2.14.tar.gz
mv glibc-ports-2.14 glibc-2.14/ports
mkdir glibc-2.14/build
cd glibc-2.14/build 
../configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
make install 

安裝編譯過程中需要注意三點:

  • 要將glibc-ports解壓到glibc目錄下
  • 不能在glibc當前目錄下運行configure
  • 加上優(yōu)化開關象迎,export CFLAGS="-g -O2 -march=i486"荧嵌,否則會出現錯誤
  • 在make install過程中可能會出現 nss_test1加載不了的情況, 此時可以將加載libnss_test1.so.2的地方注釋掉砾淌,用grep "nss_test1" . -nr命令在 /glibc目錄下查找一下啦撮,加載的地方也不多(這只是一個測試nss的靜態(tài)庫,可以不要)

2汪厨、/lib64/libc.so.6: version `GLIBC_2.16' not found (required by ./chromedriver)

wget http://ftp.gnu.org/gnu/glibc/glibc-2.16.0.tar.gz 
wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.16.0.tar.gz 
tar -xvf  glibc-2.16.0.tar.gz 
tar -xvf  glibc-ports-2.16.0.tar.gz
mv glibc-ports-2.16.0 glibc-2.16.0/ports
mkdir glibc-2.16.0/build
cd glibc-2.16.0/build 
../configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
make install 

報錯

Unmatched ( in regex; marked by  HERE in m/$( <-- HERE if $(abi-64-ld-soname),$(abi-64-ld-soname),ld/ at scripts/test-installation.pl line

可以參考解決辦法https://sourceware.org/bugzilla/attachment.cgi?id=6616&action=diff

  • glibc-2.16.0/Makefile
ifeq (,$(install_root))
      CC="$(CC)" $(PERL) scripts/test-installation.pl $(common-objpfx)
endif

改成

ifeq (,$(install_root))
     LD_SO=$(ld.so-version) CC="$(CC)" $(PERL) scripts/test-installation.pl $(common-objpfx)
endif
  • glibc-2.16.0/scripts/test-installation.pl
sub usage {
    print "Usage: test-installation [soversions.mk]\n";

上面添加

if ($ENV{LD_SO}) {
  $LD_SO = $ENV{LD_SO};
} else {
  $LD_SO= "";
}

sub usage {
    print "Usage: test-installation [soversions.mk]\n";

} else {
  if (/^ld\.so/) {
     ($ld_so_name, $ld_so_version)= /=(.*)\.so\.(.*)$/;

上面添加

} elsif ($LD_SO ne "") {
    ($ld_so_name, $ld_so_version) = split ('\.so\.', $LD_SO);
} else {
  if (/^ld\.so/) {
     ($ld_so_name, $ld_so_version)= /=(.*)\.so\.(.*)$/;

歡迎關注 “后端老鳥” 公眾號赃春,接下來會發(fā)一系列的專題文章,包括Java劫乱、Python织中、Linux、SpringBoot衷戈、SpringCloud狭吼、Dubbo、算法殖妇、技術團隊的管理等刁笙,還有各種腦圖和學習資料,NFC技術谦趣、搜索技術疲吸、爬蟲技術、推薦技術蔚润、音視頻互動直播等,只要有時間我就會整理分享烦租,敬請期待叉橱,現成的筆記、腦圖和學習資料如果大家有需求也可以公眾號留言提前獲取粪小。由于本人在所有團隊中基本都處于攻堅和探路的角色杠愧,搞過的東西多流济,遇到的坑多绳瘟,解決的問題也很多糖声,歡迎大家加公眾號進群一起交流學習。

【轉載請注明出處】:https://blog.csdn.net/huahao1989/article/details/107890747

image
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末歼争,一起剝皮案震驚了整個濱河市沐绒,隨后出現的幾起案子,更是在濱河造成了極大的恐慌蹋肮,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異矢炼,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門爹谭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來东揣,“玉大人,你說我怎么就攤上這事芥吟。” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵缸托,是天一觀的道長矫限。 經常有香客問我取董,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任晚胡,我火速辦了婚禮嚼沿,結果婚禮上估盘,老公的妹妹穿的比我還像新娘。我一直安慰自己骡尽,他們只是感情好遣妥,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攀细,像睡著了一般燥透。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辨图,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天班套,我揣著相機與錄音,去河邊找鬼故河。 笑死吱韭,一個胖子當著我的面吹牛,可吹牛的內容都是我干的鱼的。 我是一名探鬼主播理盆,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼凑阶!你這毒婦竟也來了猿规?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤宙橱,失蹤者是張志新(化名)和其女友劉穎姨俩,沒想到半個月后蘸拔,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡环葵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年调窍,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片张遭。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡邓萨,死狀恐怖,靈堂內的尸體忽然破棺而出菊卷,到底是詐尸還是另有隱情缔恳,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布洁闰,位于F島的核電站褐耳,受9級特大地震影響,放射性物質發(fā)生泄漏渴庆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一雅镊、第九天 我趴在偏房一處隱蔽的房頂上張望襟雷。 院中可真熱鬧,春花似錦仁烹、人聲如沸耸弄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽计呈。三九已至,卻和暖如春征唬,著一層夾襖步出監(jiān)牢的瞬間捌显,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工总寒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扶歪,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓摄闸,卻偏偏與公主長得像善镰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子年枕,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348