python3+selenium獲取頁(yè)面加載的所有靜態(tài)資源文件鏈接操作
軟件版本:
python 3.7.2
selenium 3.141.0
pycharm 2018.3.5
具體實(shí)現(xiàn)流程如下,廢話不多說(shuō),直接上代碼:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.desired_capabilities import DesiredCapabilities d = DesiredCapabilities.CHROME chrome_options = Options() #使用無(wú)頭瀏覽器 chrome_options.add_argument('--headless') chrome_options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36') #瀏覽器啟動(dòng)默認(rèn)最大化 chrome_options.add_argument("--start-maximized"); #該處替換自己的chrome驅(qū)動(dòng)地址 browser = webdriver.Chrome("D://googleDever//chromedriver.exe",chrome_options=chrome_options,desired_capabilities=d) browser.set_page_load_timeout(150) browser.get("https://www.xxx.com") #靜態(tài)資源鏈接存儲(chǔ)集合 urls = [] #獲取靜態(tài)資源有效鏈接 for log in browser.get_log('performance'): if 'message' not in log: continue log_entry = json.loads(log['message']) try: #該處過(guò)濾了data:開頭的base64編碼引用和document頁(yè)面鏈接 if "data:" not in log_entry['message']['params']['request']['url'] and 'Document' not in log_entry['message']['params']['type']: urls.append(log_entry['message']['params']['request']['url']) except Exception as e: pass print(urls)
打印結(jié)果為頁(yè)面渲染時(shí)加載的靜態(tài)資源文件鏈接:
[http://www.xxx.com/aaa.js,http://www.xxx.com/css.css]
以上代碼為selenium獲取頁(yè)面加載過(guò)程中預(yù)加載的各類靜態(tài)資源文件鏈接,使用該功能獲取到鏈接后,使用其他插件進(jìn)行可對(duì)資源進(jìn)行下載!
補(bǔ)充知識(shí):在idea 中python import sys,import requests 報(bào)錯(cuò)
File->Project Structure
project -> sdk -> new -> ok
設(shè)置編譯參數(shù)(主要是設(shè)置和檢查Python JDK是否正確)
以上這篇python3+selenium獲取頁(yè)面加載的所有靜態(tài)資源文件鏈接操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python實(shí)現(xiàn)從文件中加載數(shù)據(jù)的方法詳解
- Python 保存加載mat格式文件的示例代碼
- python GUI庫(kù)圖形界面開發(fā)之PyQt5動(dòng)態(tài)加載QSS樣式文件
- 解決Python 使用h5py加載文件,看不到keys()的問(wèn)題
- python用pandas數(shù)據(jù)加載、存儲(chǔ)與文件格式的實(shí)例
- Python加載帶有注釋的Json文件實(shí)例
- Python實(shí)現(xiàn)加載及解析properties配置文件的方法
- python web基礎(chǔ)之加載靜態(tài)文件實(shí)例
- python:關(guān)于文件加載及處理方式
相關(guān)文章
數(shù)據(jù)挖掘之Apriori算法詳解和Python實(shí)現(xiàn)代碼分享
這篇文章主要介紹了數(shù)據(jù)挖掘之Apriori算法詳解和Python實(shí)現(xiàn)代碼分享,本文先是對(duì)Apriori算法做了詳細(xì)介紹,然后給出了Python版實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-11-11Flask中jinja2的繼承實(shí)現(xiàn)方法及實(shí)例
在本篇文章里小編給大家分享的是一篇關(guān)于Flask中jinja2的繼承實(shí)現(xiàn)方法及實(shí)例,有興趣的朋友們可以學(xué)習(xí)下。2021-03-03python中的split、rsplit、splitlines用法說(shuō)明
這篇文章主要介紹了python中的split、rsplit、splitlines用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10Django shell調(diào)試models輸出的SQL語(yǔ)句方法
今天小編就為大家分享一篇Django shell調(diào)試models輸出的SQL語(yǔ)句方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08基于Flask+websocket實(shí)現(xiàn)一個(gè)在線聊天室
在今天的互聯(lián)網(wǎng)時(shí)代,實(shí)時(shí)通信成為了許多應(yīng)用和服務(wù)的核心特色,在本文中,我們將介紹如何使用 Flask 和 Websockets 通過(guò) Flask-SocketIO 框架創(chuàng)建一個(gè)簡(jiǎn)單的在線聊天室,感興趣的可以跟隨小編一起了解下2023-09-09用Python實(shí)現(xiàn)校園通知更新提醒功能
今天小編就為大家分享一篇用Python實(shí)現(xiàn)校園通知更新提醒功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Django 多語(yǔ)言教程的實(shí)現(xiàn)(i18n)
這篇文章主要介紹了Django 多語(yǔ)言教程的實(shí)現(xiàn)(i18n),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07