Python使用selenium + headless chrome獲取網(wǎng)頁(yè)內(nèi)容的方法示例
使用python寫(xiě)爬蟲(chóng)時(shí),優(yōu)選selenium,由于PhantomJS因內(nèi)部原因已經(jīng)停止更新,最新版的selenium已經(jīng)使用headless chrome替換掉了PhantomJS,所以建議將selenium更新到最新版,使用selenium + headless chrome
準(zhǔn)備工作:
安裝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官方源可能在中國(guó)無(wú)法使用,導(dǎo)致安裝失敗或者在國(guó)內(nèi)無(wú)法更新,可以添加以下參數(shù)來(lái)安裝:
> yum -y install google-chrome-stable --nogpgcheck
這樣,google chrome即可安裝成功。
二、安裝chrome driver
查看上述安裝的chrome版本,根據(jù)版本選擇對(duì)應(yīng)的chrome driver下載,下載之后放到/usr/local/bin目錄
三、安裝selenium
> pip install selenium
上述準(zhǔn)備工作完成后,就可以開(kāi)始寫(xiě)代碼了
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上需要添加一下兩個(gè)參數(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
備注:如果訪問(wèn)一些詳情頁(yè)有cookie驗(yàn)證,可以先訪問(wèn)主頁(yè),然后再訪問(wèn)詳情頁(yè),webdriver會(huì)自動(dòng)攜帶cookie
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例
這篇文章主要介紹了Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08零基礎(chǔ)寫(xiě)python爬蟲(chóng)之抓取百度貼吧代碼分享
前面幾篇都是以介紹基礎(chǔ)知識(shí)為主,各位童鞋估計(jì)都在犯嘀咕了,你到底寫(xiě)不寫(xiě)爬蟲(chóng)????額,好吧,本文就給大家寫(xiě)一個(gè)簡(jiǎn)單的百度貼吧的python爬蟲(chóng)代碼。2014-11-11Python網(wǎng)絡(luò)爬蟲(chóng)中的同步與異步示例詳解
這篇文章主要給大家介紹了關(guān)于Python網(wǎng)絡(luò)爬蟲(chóng)中同步與異步的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02Python中使用glob和rmtree刪除目錄子目錄及所有文件的例子
這篇文章主要介紹了python中使用glob和rmtree刪除目錄子目錄及所有文件的例子,需要的朋友可以參考下2014-11-11python文件讀取read及readlines兩種方法使用詳解
這篇文章主要為大家介紹了python文件讀取read及readlines兩種方法的使用示例及區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07探索python?dask靈活的并行計(jì)算庫(kù)應(yīng)用場(chǎng)景示例
這篇文章主要介紹了探索python?dask靈活的并行計(jì)算庫(kù)應(yīng)用場(chǎng)景示例,Dask?是?Python?中的一個(gè)靈活的并行計(jì)算庫(kù),允許用戶利用?CPU?內(nèi)核的強(qiáng)大功能,對(duì)大于內(nèi)存的數(shù)據(jù)集執(zhí)行分布式計(jì)算2024-01-01如何實(shí)現(xiàn)Django Rest framework版本控制
這篇文章主要介紹了如何實(shí)現(xiàn)Django Rest framework版本控制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07