欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬蟲之PhantomJS和handless的使用詳解

 更新時間:2023年09月14日 10:02:36   作者:萬里顧—程  
這篇文章主要介紹了Python爬蟲之PhantomJS和handless的使用詳解,PhantomJS是一個基于Webkit的headless瀏覽器,它會把網(wǎng)站加載到內(nèi)存并使用webkit來編譯解釋執(zhí)行頁面上的JavaScript代碼,由于不進行css和gui渲染、不展示圖形界面,需要的朋友可以參考下

1、PhantomJS的使用

PhantomJS 簡介

PhantomJS 是一個基于Webkit的“無界面”(headless)瀏覽器,它會把網(wǎng)站加載到內(nèi)存并使用webkit來編譯解釋執(zhí)行頁面上的JavaScript代碼,由于不進行css和gui渲染、不展示圖形界面,所以運行起來比完整的瀏覽器要高效。

如果把 Selenium 和 PhantomJS 結(jié)合在一起使用,就能實現(xiàn)一個能力非常強大的網(wǎng)絡(luò)爬蟲了,這個爬蟲可以處理JavaScript、Cookie、headers,以及任何我們真實用戶需要做的事情。

PhantomJS 下載

下載方式:PhantomJS 只能從它的官方網(wǎng)站下載,因為 PhantomJS 是一個功能完善的無界面瀏覽器而并非一個 Python 庫,所以 PhantomJS 不像 Python 的其他庫一樣使用 pip 命令安裝。

使用方式:下載 PhantomJS 壓縮包后解壓得到 phantomjs.exe,把 phantomjs.exe 放到 python 當前項目目錄下,通過Selenium調(diào)用PhantomJS來直接使用。

官方網(wǎng)站下載地址

PhantomJS 官方參考文檔

PhantomJS 的使用

代碼實例:

import time
from selenium import webdriver
path = 'phantomjs.exe'
# 通過Selenium的webdriver調(diào)用PhantomJS
driver = webdriver.PhantomJS(path)
driver.get("http://www.baidu.com/")
# 獲取頁面名為 wrapper的id標簽的文本內(nèi)容
data = driver.find_element_by_id("wrapper").text
# 打印數(shù)據(jù)內(nèi)容
print(data)
# 打印頁面標題 "百度一下,你就知道
print(driver.title)
# 生成當前頁面快照并保存
driver.save_screenshot("baidu.png")
time.sleep(2)
# 定位百度搜索輸入框,輸入字符串"王維家"
driver.find_element_by_id("kw").send_keys("王維家")
# 清除輸入框的內(nèi)容
driver.find_element_by_id("kw").clear()
# 定位百度搜索輸入框,輸入字符串"毛不易"
driver.find_element_by_id("kw").send_keys("毛不易")
# 定位百度搜索按鈕并點擊
driver.find_element_by_id("su").click()
# 獲取新的頁面快照并保存
driver.save_screenshot("maobuyi.png")
# 輸出網(wǎng)頁渲染后的源代碼
# print(driver.page_source)
# 清除輸入框的內(nèi)容
driver.find_element_by_id("kw").clear()
# 輸入框重新輸入內(nèi)容 “福祿壽”
driver.find_element_by_id("kw").send_keys("福祿壽")
# 提交搜索
driver.find_element_by_id("kw").submit()
time.sleep(2)
# 生成新的頁面快照
driver.save_screenshot("福祿壽.png")
# 獲取當前url
print(driver.current_url)
# 關(guān)閉當前頁面,如果只有一個頁面,會關(guān)閉瀏覽器
driver.quit()

執(zhí)行結(jié)果:

新聞hao123地圖貼吧視頻圖片網(wǎng)盤更多
設(shè)置登錄
換一換
中國邁入創(chuàng)新型國家行列
3全年糧食奪取豐收有支撐
1鼓勵生三孩 17部門聯(lián)合發(fā)文

431省份昨日新增本土“566+2322”
2要求4省完成財政上繳任務(wù)有何深意?

5孩子高鐵上吵鬧 乘客提醒被家長懟
關(guān)于百度About Baidu使用百度前必讀幫助中心
百度一下,你就知道
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E7%A6%8F%E7%A6%84%E5%AF%BF&fenlei=256&rsv_pq=b11a858d007a15c5&rsv_t=498aJh0m9WbICve1EXCXZCzDY41aZM9AIwgaD3J2LU5gCAb3ULnF%2BVi1DgJU&rqlang=en&rsv_enter=0&rsv_dl=tb&rsv_btype=t&inputT=28&rsv_sug3=9&rsv_sug4=29&rsv_jmp=fail

2、Chrome handless

Chrome handless 模式:由于新版本的 selenium 已經(jīng)棄用 PhantomJs,PhantomJs也停止了更新和維護,所以推薦使用谷歌的Chrome handless模式(無頭模式),這是一款無界面的谷歌瀏覽器,可以讓使用者在不打開UI界面的情況下使用Chrome瀏覽器,并且運行效果與真實的Chrome瀏覽器一樣,但是性能更高。

使用要求:

  • Windows系統(tǒng)chrome版本>=60
  • Linux系統(tǒng)chrome版本>=59
  • python版本>=3.6
  • selenium>=3.4
  • chromeDriver>=2.31

handless 使用實例

代碼實例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
# 配置 handless 方法
def create_handless():
    # 創(chuàng)建一個參數(shù)對象,用來控制chrome以無界面模式打開
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    # chrome瀏覽器文件路徑
    path = r'.C:\Program Files\Google\Chrome\Application\chromedriver.exe'
    chrome_options.binary_location = path
    # 創(chuàng)建瀏覽器對象
    browser = webdriver.Chrome(chrome_options=chrome_options)
    return browser
# 訪問百度
url = 'http://www.baidu.com/'
browser = create_handless()
browser.get(url)
time.sleep(2)
browser.save_screenshot('baidu.png')  # 截取圖片
browser.quit()

到此這篇關(guān)于Python爬蟲之PhantomJS和handless的使用詳解的文章就介紹到這了,更多相關(guān)Python的PhantomJS和handless內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中的bisect模塊與二分查找詳情

    python中的bisect模塊與二分查找詳情

    這篇文章主要介紹了python中的bisect模塊與二分查找詳情,bisect是python的內(nèi)置模塊,?用于有序序列的插入和查找。?插入的數(shù)據(jù)不會影響列表的排序,更多詳細內(nèi)容需要的朋友可以參考一下
    2022-09-09
  • Python的凈值數(shù)據(jù)接口調(diào)用示例分享

    Python的凈值數(shù)據(jù)接口調(diào)用示例分享

    這篇文章主要介紹了Python的凈值數(shù)據(jù)接口調(diào)用示例分享的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • python編寫猜數(shù)字小游戲

    python編寫猜數(shù)字小游戲

    這篇文章主要為大家詳細介紹了python編寫猜數(shù)字小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python中的程序流程控制語句

    Python中的程序流程控制語句

    這篇文章主要介紹了Python中的程序流程控制語句,本篇博客將會講述一下Python語言中的流程控制語句,在高中我們數(shù)學(xué)中學(xué)過程序流程題,下面我們來看看python中得流程語句會是怎么樣呢,需要的小伙伴可以參考一下
    2022-02-02
  • Python堆棧的具體使用

    Python堆棧的具體使用

    本文主要介紹了Python堆棧的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 完美處理python與anaconda環(huán)境變量的沖突問題

    完美處理python與anaconda環(huán)境變量的沖突問題

    這篇文章主要介紹了完美處理Python與anaconda環(huán)境變量的沖突問題,對anaconda感興趣的同學(xué),可以參考下
    2021-04-04
  • OpenCV角點檢測的實現(xiàn)示例

    OpenCV角點檢測的實現(xiàn)示例

    角點通常被定義為兩條邊的交點,本文主要介紹了OpenCV角點檢測的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • django中使用POST方法獲取POST數(shù)據(jù)

    django中使用POST方法獲取POST數(shù)據(jù)

    這篇文章主要介紹了django中使用POST方法獲取POST數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python函數(shù)的重新定義及練習(xí)

    python函數(shù)的重新定義及練習(xí)

    這篇文章主要為大家詳細介紹了python的函數(shù),使用python,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python中dumps與dump及l(fā)oads與load的區(qū)別

    Python中dumps與dump及l(fā)oads與load的區(qū)別

    這篇文章主要介紹了Python中dumps與dump、loads與load的區(qū)別,json模塊提供了一種很簡單的方式來編碼和解碼JSON數(shù)據(jù)。其中兩個主要的函數(shù)是json.dumps()和json.loads(),需要的朋友可以參考下
    2022-04-04

最新評論