爬蟲使用無頭瀏覽器



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,由於牆的原因可能下載失敗

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM