最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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離線安裝openpyxl模塊的步驟

    Python離線安裝openpyxl模塊的步驟

    這篇文章主要介紹了Python離線安裝openpyxl模塊的步驟,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 詳解python程序中的多任務(wù)

    詳解python程序中的多任務(wù)

    這篇文章主要介紹了python程序中多任務(wù)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • Python實現(xiàn)對特定列表進行從小到大排序操作示例

    Python實現(xiàn)對特定列表進行從小到大排序操作示例

    這篇文章主要介紹了Python實現(xiàn)對特定列表進行從小到大排序操作,涉及Python文件讀取、計算、正則匹配、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • Windows平臺Python連接sqlite3數(shù)據(jù)庫的方法分析

    Windows平臺Python連接sqlite3數(shù)據(jù)庫的方法分析

    這篇文章主要介紹了Windows平臺Python連接sqlite3數(shù)據(jù)庫的方法,結(jié)合實例形式分析了Windows平臺安裝SQLite數(shù)據(jù)庫及創(chuàng)建、連接數(shù)據(jù)庫的實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-07-07
  • python實現(xiàn)UDP協(xié)議下的文件傳輸

    python實現(xiàn)UDP協(xié)議下的文件傳輸

    這篇文章主要為大家詳細介紹了python實現(xiàn)UDP協(xié)議下的文件傳輸,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 基于打開pycharm有帶圖片md文件卡死問題的解決

    基于打開pycharm有帶圖片md文件卡死問題的解決

    這篇文章主要介紹了基于打開pycharm有帶圖片md文件卡死問題的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • scrapy-redis源碼分析之發(fā)送POST請求詳解

    scrapy-redis源碼分析之發(fā)送POST請求詳解

    這篇文章主要給大家介紹了關(guān)于scrapy-redis源碼分析之發(fā)送POST請求的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用scrapy-redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python2和Python3中print的用法示例總結(jié)

    Python2和Python3中print的用法示例總結(jié)

    在Python 3中接觸的第一個很大的差異就是縮進是作為語法的一部分,這和C++等其他語言確實很不一樣,所以要小心,其中python3和python2中print的用法有很多不同,這篇文章主要給大家介紹了關(guān)于Python2和Python3中print用法的相關(guān)資料,需要的朋友可以參考下。
    2017-10-10
  • Python中的隨機函數(shù)random詳解

    Python中的隨機函數(shù)random詳解

    大家好,本篇文章主要講的是Python中的隨機函數(shù)random詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 淺談python實現(xiàn)Google翻譯PDF,解決換行的問題

    淺談python實現(xiàn)Google翻譯PDF,解決換行的問題

    今天小編就為大家分享一篇淺談python實現(xiàn)Google翻譯PDF,解決換行的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11

最新評論

汝阳县| 会理县| 南汇区| 五台县| 宝兴县| 望江县| 天峨县| 桦甸市| 抚州市| 沐川县| 凭祥市| 平谷区| 双峰县| 久治县| 微山县| 精河县| 兴仁县| 洛扎县| 岳池县| 平潭县| 吴川市| 鄂伦春自治旗| 九龙县| 忻城县| 中宁县| 博乐市| 桦甸市| 长治县| 双流县| 印江| 阳曲县| 巴东县| 万源市| 荆州市| 咸宁市| 晋江市| 军事| 滨海县| 平阴县| 长乐市| 高阳县|