python3+selenium获取页面加载的所有静态资源文件链接操作


Posted in Python onMay 04, 2020

软件版本:

python 3.7.2

selenium 3.141.0

pycharm 2018.3.5

具体实现流程如下,废话不多说,直接上代码:

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()
#使用无头浏览器
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')
#浏览器启动默认最大化
chrome_options.add_argument("--start-maximized");
#该处替换自己的chrome驱动地址
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")
#静态资源链接存储集合
urls = []
#获取静态资源有效链接
for log in browser.get_log('performance'):
	 if 'message' not in log:
			continue
	 log_entry = json.loads(log['message'])
	 try:
		#该处过滤了data:开头的base64编码引用和document页面链接
			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)

打印结果为页面渲染时加载的静态资源文件链接:

[http://www.xxx.com/aaa.js,http://www.xxx.com/css.css]

以上代码为selenium获取页面加载过程中预加载的各类静态资源文件链接,使用该功能获取到链接后,使用其他插件进行可对资源进行下载!

补充知识:在idea 中python import sys,import requests 报错

File->Project Structure

project -> sdk -> new -> ok

设置编译参数(主要是设置和检查Python JDK是否正确)

python3+selenium获取页面加载的所有静态资源文件链接操作

以上这篇python3+selenium获取页面加载的所有静态资源文件链接操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python列表去重的二种方法
Feb 14 Python
python编写暴力破解FTP密码小工具
Nov 19 Python
Python多线程编程(一):threading模块综述
Apr 05 Python
从Python的源码来解析Python下的freeblock
May 11 Python
python 回调函数和回调方法的实现分析
Mar 23 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
Python Flask基础教程示例代码
Feb 07 Python
python中的print()输出
Apr 12 Python
Python中字符串List按照长度排序
Jul 01 Python
Python流程控制 while循环实现解析
Sep 02 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
python Manager 之dict KeyError问题的解决
Dec 21 Python
解决IDEA 的 plugins 搜不到任何的插件问题
May 04 #Python
python3 sleep 延时秒 毫秒实例
May 04 #Python
Python并发concurrent.futures和asyncio实例
May 04 #Python
Python 中由 yield 实现异步操作
May 04 #Python
python 双循环遍历list 变量判断代码
May 04 #Python
Python求解排列中的逆序数个数实例
May 03 #Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 #Python
You might like
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
Javascript 两个窗体之间传值实现代码
2009/09/25 Javascript
Node.js文件操作详解
2014/08/16 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
React Native中Navigator的使用方法示例
2017/10/13 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
python使用正则表达式提取网页URL的方法
2015/05/26 Python
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
使用django实现一个代码发布系统
2019/07/18 Python
Python高并发和多线程有什么关系
2020/11/14 Python
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
init进程的作用
2015/08/20 面试题
老公给老婆的道歉信
2014/01/10 职场文书
学年自我鉴定
2014/01/16 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
中学生检讨书范文
2014/11/03 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang
MySQL中order by的使用详情
2021/11/17 MySQL
Vue的生命周期一起来看看
2022/02/24 Vue.js