selenium 记录 performance日志
做爬虫的时候,有时候遇到需要的数据在加载资源当中,通常做法是拼接url,然后获取数据,但首先需要进行分析,如果拼接中的参数有加密的情况时,如果不能模拟算法生成正确的参数,那就很头疼。而访问performance,可以获得加载网站时的资源请求信息,可以通过这一特点,获取url和数据。
import timefrom selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import jsonclass Mychrome:def __init__(self):self.options = webdriver.ChromeOptions()self.flash_urls = []self.set_browser()def set_browser(self):prefs = {"profile.managed_default_content_settings.images": 1,}if self.flash_urls is not None and len(self.flash_urls) != 0:prefs['profile.managed_plugins_allowed_for_urls'] = self.flash_urlsself.options.add_experimental_option('prefs', prefs)# 方法1# capabilities = DesiredCapabilities.CHROME# capabilities['loggingPrefs'] = {"performance","all"}# self.driver = webdriver.Chrome(# desired_capabilities=capabilities# )# 方法2# self.options.add_experimental_option("excludeSwitches", ['enable-automation']) # window.navigator.webdriver设置为undefined,逃过网站的防爬检查,headless无效desired_capabilities = self.options.to_capabilities() # 将功能添加到options中desired_capabilities['loggingPrefs'] = {"performance": "ALL" # 添加日志}self.driver =webdriver.Chrome(desired_capabilities=desired_capabilities)def gethtml(self):url ='http://www.baidu.com'self.driver.get(url)print(self.driver.get_log('performance'))print('-'*60)print(self.driver.get_log('performance'))for entry in self.driver.get_log('performance'):params = json.loads(entry.get('message')).get('message')print(params.get('request')) # 请求连接 包含错误连接print(params.get('response')) # 响应连接 正确有返回值得连接if __name__ =='__main__':browser = Mychrome().gethtml()
selenium 记录 performance日志相关推荐
- 工作经验:Java 系统记录调用日志,并且记录错误堆栈
前言:现在有一个系统,主要是为了给其他系统提供数据查询接口的,这个系统上线不会轻易更新,更不会跟随业务系统的更新而更新(这也是有一个数据查询接口系统的原因,解耦).这时,这个系统就需要有一定的方便的线 ...
- 如何使用SpringBoot AOP 记录操作日志、异常日志?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:咫尺的梦想_w cnblogs.com/wm-dv/ ...
- Appfuse:记录操作日志
appfuse的数据维护操作都发生在***form页面,与之对应的是***FormController,在Controller中处理数据的操作是onSubmit方法,既然所有的操作都通过onSubmi ...
- 用aspect在springboot中记录操作日志至数据库的详细过程
代码来自若依管理系统的后台,我截取的其中用于记录操作日志的部分 1.切面 2.操作日志表 3.spring工具类 4.客户端工具类 异步工厂(产生任务用) 异步任务管理器 5.服务层 6.控制层 1. ...
- 记录到日志中的异常栈缺失
.NET项目中有这样一个场景: 使用反射处理所有业务调用,在反射调用点使用try-catch集中处理异常,并将异常信息记录到日志.其中日志记录是异步的. 问题: 记录到日志中的异常的StackTrac ...
- Springboot使用AOP记录请求日志和返回数据
首先是日志表结构 DROP TABLE IF EXISTS `protal_logvo`; CREATE TABLE `protal_logvo` (`id` varchar(255) NOT NUL ...
- 如何将 winston log 库记录的日志写入 mongo DB 数据库
官网 Winston 非常适合配置不同的日志目的地. 在我们的小应用程序中,让我们创建另一个传输. 这次我想把日志保存到一个数据库中,MongoDB 简洁一些. 在 logger.js 文件上,复制以 ...
- 在业务层实现记录请求日志
前言 上次,我们介绍了如何<在业务层实现响应缓存>. 今天,我们同样使用IPipelineBehavior,介绍如何在业务层实现记录请求日志,用于跟踪每个请求执行的耗时. Demo 创建A ...
- 基于.NetCore3.1系列 —— 日志记录之日志核心要素揭秘
前言 在上一篇中,我们已经了解了内置系统的默认配置和自定义配置的方式,在学习了配置的基础上,我们进一步的对日志在程序中是如何使用的深入了解学习.所以在这一篇中,主要是对日志记录的核心机制进行学习说明. ...
最新文章
- 46. AngularJS所有版本下载
- 汇编语言 字符串的复制
- html 启动bat脚本,Windows开机自启动bat脚本设置方法
- 【c#】Form调用百度地图api攻略及常见问题
- JavaScript定时器原理及高级使用
- BugkuCTF-Misc:想蹭网先解开密码
- new 一个结构体数组_每天一个IDA小技巧(四):结构体识别
- 【面向对象】面向对象程序设计测试题2-Java基本语法测试题
- java中byte装箱和装箱_Java包装类、拆箱和装箱详解
- Cobalt Strike 从入门到入狱(三)
- Ubuntu安装桌面环境以及远程桌面连接
- 计算机日志文件事件ID,系统日志出现事件 ID:16001来源:AFD的警告
- jacob 插入水印方法整理
- oracle查看已经创建的同义词,创建同义词synonym
- Beaglebone Black——开机自动运行程序
- 关于dubbo快速开发和服务提供者无法注册上注意点
- 本地计算机无法设置共享文件夹,win10系统下共享文件夹无法访问的解决方法
- 微型计算机中的数据总线用来进行什么的传输,汽检2011级汽车车载网络复习题答案...
- RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:784, unhandled system erro
- mysql日期时间类型