Python使用selenium + headless chrome獲取網(wǎng)頁內(nèi)容的方法示例
使用python寫爬蟲時,優(yōu)選selenium,由于PhantomJS因內(nèi)部原因已經(jīng)停止更新,最新版的selenium已經(jīng)使用headless chrome替換掉了PhantomJS,所以建議將selenium更新到最新版,使用selenium + headless chrome
準備工作:
安裝chrome、chrome driver、selenium
一、安裝chrome
配置yum下載源,在目錄/etc/yum.repos.d/
下新建文件google-chrome.repo
> cd /ect/yum.repos.d/ > vim google-chrome.repo
編輯google-chrome.repo
,內(nèi)容如下,保存退出
[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
安裝google chrome瀏覽器:
> yum -y install google-chrome-stable
PS: Google官方源可能在中國無法使用,導(dǎo)致安裝失敗或者在國內(nèi)無法更新,可以添加以下參數(shù)來安裝:
> yum -y install google-chrome-stable --nogpgcheck
這樣,google chrome即可安裝成功。
二、安裝chrome driver
查看上述安裝的chrome版本,根據(jù)版本選擇對應(yīng)的chrome driver下載,下載之后放到/usr/local/bin目錄
三、安裝selenium
> pip install selenium
上述準備工作完成后,就可以開始寫代碼了
from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument('lang=zh_CN.UTF-8') # 在linux上需要添加一下兩個參數(shù) options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') browser = Chrome(chrome_options=options) browser.set_page_load_timeout(30) browser.set_script_timeout(30) browser.get(url) # 獲取返回內(nèi)容 print browser.page_source # 查找元素 print browser.find_element_by_tag_name('pre').text
備注:如果訪問一些詳情頁有cookie驗證,可以先訪問主頁,然后再訪問詳情頁,webdriver會自動攜帶cookie
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例
這篇文章主要介紹了Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Python網(wǎng)絡(luò)爬蟲中的同步與異步示例詳解
這篇文章主要給大家介紹了關(guān)于Python網(wǎng)絡(luò)爬蟲中同步與異步的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02Python中使用glob和rmtree刪除目錄子目錄及所有文件的例子
這篇文章主要介紹了python中使用glob和rmtree刪除目錄子目錄及所有文件的例子,需要的朋友可以參考下2014-11-11python文件讀取read及readlines兩種方法使用詳解
這篇文章主要為大家介紹了python文件讀取read及readlines兩種方法的使用示例及區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07探索python?dask靈活的并行計算庫應(yīng)用場景示例
這篇文章主要介紹了探索python?dask靈活的并行計算庫應(yīng)用場景示例,Dask?是?Python?中的一個靈活的并行計算庫,允許用戶利用?CPU?內(nèi)核的強大功能,對大于內(nèi)存的數(shù)據(jù)集執(zhí)行分布式計算2024-01-01如何實現(xiàn)Django Rest framework版本控制
這篇文章主要介紹了如何實現(xiàn)Django Rest framework版本控制,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07