做爬虫的时候,有时候遇到需要的数据在加载资源当中,通常做法是拼接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日志相关推荐

  1. 工作经验:Java 系统记录调用日志,并且记录错误堆栈

    前言:现在有一个系统,主要是为了给其他系统提供数据查询接口的,这个系统上线不会轻易更新,更不会跟随业务系统的更新而更新(这也是有一个数据查询接口系统的原因,解耦).这时,这个系统就需要有一定的方便的线 ...

  2. 如何使用SpringBoot AOP 记录操作日志、异常日志?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:咫尺的梦想_w cnblogs.com/wm-dv/ ...

  3. Appfuse:记录操作日志

    appfuse的数据维护操作都发生在***form页面,与之对应的是***FormController,在Controller中处理数据的操作是onSubmit方法,既然所有的操作都通过onSubmi ...

  4. 用aspect在springboot中记录操作日志至数据库的详细过程

    代码来自若依管理系统的后台,我截取的其中用于记录操作日志的部分 1.切面 2.操作日志表 3.spring工具类 4.客户端工具类 异步工厂(产生任务用) 异步任务管理器 5.服务层 6.控制层 1. ...

  5. 记录到日志中的异常栈缺失

    .NET项目中有这样一个场景: 使用反射处理所有业务调用,在反射调用点使用try-catch集中处理异常,并将异常信息记录到日志.其中日志记录是异步的. 问题: 记录到日志中的异常的StackTrac ...

  6. Springboot使用AOP记录请求日志和返回数据

    首先是日志表结构 DROP TABLE IF EXISTS `protal_logvo`; CREATE TABLE `protal_logvo` (`id` varchar(255) NOT NUL ...

  7. 如何将 winston log 库记录的日志写入 mongo DB 数据库

    官网 Winston 非常适合配置不同的日志目的地. 在我们的小应用程序中,让我们创建另一个传输. 这次我想把日志保存到一个数据库中,MongoDB 简洁一些. 在 logger.js 文件上,复制以 ...

  8. 在业务层实现记录请求日志

    前言 上次,我们介绍了如何<在业务层实现响应缓存>. 今天,我们同样使用IPipelineBehavior,介绍如何在业务层实现记录请求日志,用于跟踪每个请求执行的耗时. Demo 创建A ...

  9. 基于.NetCore3.1系列 —— 日志记录之日志核心要素揭秘

    前言 在上一篇中,我们已经了解了内置系统的默认配置和自定义配置的方式,在学习了配置的基础上,我们进一步的对日志在程序中是如何使用的深入了解学习.所以在这一篇中,主要是对日志记录的核心机制进行学习说明. ...

最新文章

  1. 46. AngularJS所有版本下载
  2. 汇编语言 字符串的复制
  3. html 启动bat脚本,Windows开机自启动bat脚本设置方法
  4. 【c#】Form调用百度地图api攻略及常见问题
  5. JavaScript定时器原理及高级使用
  6. BugkuCTF-Misc:想蹭网先解开密码
  7. new 一个结构体数组_每天一个IDA小技巧(四):结构体识别
  8. 【面向对象】面向对象程序设计测试题2-Java基本语法测试题
  9. java中byte装箱和装箱_Java包装类、拆箱和装箱详解
  10. Cobalt Strike 从入门到入狱(三)
  11. Ubuntu安装桌面环境以及远程桌面连接
  12. 计算机日志文件事件ID,系统日志出现事件 ID:16001来源:AFD的警告
  13. jacob 插入水印方法整理
  14. oracle查看已经创建的同义词,创建同义词synonym
  15. Beaglebone Black——开机自动运行程序
  16. 关于dubbo快速开发和服务提供者无法注册上注意点
  17. 本地计算机无法设置共享文件夹,win10系统下共享文件夹无法访问的解决方法
  18. 微型计算机中的数据总线用来进行什么的传输,汽检2011级汽车车载网络复习题答案...
  19. RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:784, unhandled system erro
  20. mysql日期时间类型

热门文章

  1. Windows WSUS更新服务
  2. Android Studio - 连接夜神模拟器
  3. 架构师成长系列 - 能力认知(1)
  4. 抖音收益来源,抖音没有播放量有收益吗,如何提高播放量?
  5. [js点滴]JavaScript之设备事件详解01
  6. oracle数据库默认端口:1521,telnet不通
  7. Robot Framework 简介
  8. python编码规范考试试题及答案_中国大学慕课mooc2020Python编程基础题目答案
  9. 巨头云集,只为打造一场前所未有的游戏盛宴
  10. mciSendCommand 返回错误代码277 的解决方案