最近研究爬虫的时候,发现chrome也支持xpath,用法如下,在console中输入 $x("//h1") 即可定位到第一个h1元素。 ?...image.png xpath常用语法 1.定位元素 使用/ 或者//定位元素,如果路径以/开始,代表相对于一个元素的绝对路径,如果路径以//开始,则表示选择文档中所有符合该条件的元素。.../div/p/a # 表示选择div元素下p元素的a子节点 /div//a # 表示选择div元素下所有的后代节点中的a节点。 2.选择未知元素 使用通配符*选择未知元素。.../*/*/a # 选择具有两个父元素的所有a节点。 //** 选中所有元素。 3.选择分支 通过在XPath表达式中使用方括号可以进一步地指定一个元素。.../div/p[last()] # 选择最后一个元素 4.选择多个路径 使用| 选择多个路径。 /div/p | div/a 5.选择属性 使用@选择属性。
今天在学习爬虫的时候,在selenium中调用phantomjs,没想到说要使用无头浏览器。然后纠结了半天,决定直接调用chrome的无头模式就好了。...注意,要先装好chromedriver 代码是下面这样的 from selenium import webdriver from selenium.webdriver.chrome.options import...Options chrome_options = Options() chrome_options.add_argument('--headless') browser = webdriver.Chrome...(chrome_options=chrome_options) browser.get('https://www.baidu.com') print(browser.current_url) 然后后就可以在后台打开页面了
document的ready事件通常会比window的onload事件先发生,为什么呢?...因为document的ready是在浏览器加载解析并构建完doc文档模型时发生的,而window的onload是整个文档的内容加载完成时才会发生。...readystatechange事件会在document对象上的readyState属性的属性值发生变化时触发. // 模拟DOMContentLoaded document.onreadystatechange
window.onload 是DOM中的标准事件,而$(document).ready() 是jQuery中的事件。...但是,onload 事件发生的比ready 更晚。当网页上所有的内容(content)载入完毕后(包括图片),onload 事件才会发生。...ready 事件的目的是:在document 装载完成之后,ready 事件应该尽可能早的发生。以便于给elements 添加功能,而不用等所有的content 都装载完成。 ---- ...
中的window.onload方法,不过与window.onload方法还是有区别的。...1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。...在常规的 Javascript 代码中,通常使用 window.onload 方法,而在jQuery中,使用的是$(document).ready() 方法,极大的提高Web应用程序的速度。...要解决这个问题,可以使用 Jquery 中另一个关于页面加载的方法 ---load()方法。 Load()方法会在元素的onload 事件中绑定一个处理函数。...Diego Perini 在 2007 年的时候,报告了一种检测 IE 是否加载完成的方式,使用 doScroll 方法调用。
chrome devtools 是前端开发再也熟悉不过的调试工具了。那么我们究竟有多了解它,这里总结了一些常用的CSS调试操作。...使用键盘快捷键更改声明值 编辑声明的值时,可以使用以下键盘快捷键将值递增固定量: Up 将值更改为1,如果当前值介于-1和1之间,则更改0.1。...使用Coverage选项卡查看已使用和未使用的CSS 1、按下Command+ Shift+ P(Mac)或 Control+ Shift+ P(Windows,Linux,Chrome OS),而DevTools...页面重新加载,Coverage选项卡提供浏览器加载的每个文件使用多少CSS(和JavaScript)的概述。绿色代表使用CSS。红色表示未使用的CSS。...4、单击一个CSS文件,查看它使用的CSS的逐行细分。 拾色器的使用 面板说明 以下是拾色器的每个UI元素的说明: 1、阴影。 2、吸管。 3、复制到剪贴板。将显示值复制到剪贴板。 4、显示价值。
自己平时总结的一些使用WebStrom的使用技巧和Chrome浏览器使用技巧 WebStrom使用技巧 标签名 + Tab键可以快速输入一个标签 例如:div + Tab键可以快速输入:的id选择器名称依次是box1、box2、box3 按住Ctrl键,并且按住鼠标左键,拖动鼠标,选中代码,松开鼠标左键后代码仍能处于被选中的状态,此时可以对代码做一系列的操作 !...全局替换:Ctrl + Shift + R Chrome浏览器使用技巧 在浏览器中打开调试窗口的快捷键F12 或者 Ctrl + Shift + I 或者 Ctrl + Shift + J 在Chrome...浏览器下的console窗口中实现代码换行的快捷键 Shift + Enter 点击Chrome浏览器中任何地方都没反应,并且鼠标移动到标签页上时不管是左击还是右击都会删除标签页,解决方法是鼠标移到Chrome...转载请注明: 【文章转载自meishadevs:常见的WebStrom使用技巧】
基本功能: 执行脚本a,打开一个chrome,脚本a执行完成,chrome未关闭。 执行脚本b,继续使用a打开的chrome,不新启浏览器。...附加: 如果已打开的chrome未关闭,则在chrome中新建标签页来打开新的页面。 如果已打开的chrome已关闭,则新启浏览器。...但这个小工具用起来存在明显问题:每次都新启一个浏览器,多了后就是这样的 ? 根本不知道谁是谁。 于是就想到要实现前面提到的这些功能。 首先要解决的第一个问题就是,怎么重新使用已打开的chrome。...,如果已经打开的chrome关掉了,从本地文件读取的session就会过时。...拿这个过时session去用,就会”chrome not reachable“。解决思路就是,捕获driver抛出的WebDriverException,重新创建新的driver。
window.onload 、$(function()function())、;(function(){}());三个的执行顺序: ;(function(){}()); > $(function()function...()) > window.onload 的。大家都知道,如果 JS 动态加载数据,绑定事件的时候,会找不到此DOM元素,此时可以用Jquery 的另一个绑定事件 delegate()事件执行。...JQuery扫描文档查找('#container'),并使用click事件和a这一CSS选择器作为参数,把alert函数绑定到('#container')上。...任何时候只要有事件冒泡到 而 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。
怎样打开Chrome的开发者工具?...注意是在你打开Chrome开发者工具后发起的请求,才会在这里显示的哦。...Audits标签页 这个对于优化前端页面、加速网页加载速度很有用哦(相当与Yslow): 点击run按钮,就可以开始分析页面,分析完了就可以看到分析结果了: 它甚至可以分析出页面上样式表中有哪些CSS是没有被使用的哦...再例如我想查看日期函数都有哪些方法: (注:注意在这里看到的某些方法和属性是ES5新增的,记得兼容其他浏览器的支持情况哦) 结语 Google Chrome除了简洁、快速,现在的Chrome的插件也非常的丰富了...而对于web开发者来说,Chrome对于Html5、CSS3等一些新标准的支持也是比较完善的,而且Chrome的开发者工具我个人认为真的非常好用,这就是为什么我向web开发者推荐使用Chrome的原因。
不要再使用 console.log! 学会在 Chrome Developer Tools 中使用断点来调试代码。 作为一名新的开发人员,发现和修复 bug 挺难的。...您可能会试图随意使用 console.log() 来调试代码使代码正常工作。 不要再这样了。 这篇文章将讲述正确调试的方法! 您将了解如何使用 Chrome 开发人员工具来设置断点并逐步完成代码。...按照以下说明重现您将在本教程中解决的 bug。 这是我们将在本教程中使用的网页。...您可以使用其他类型的断点来暂停代码逐步靠近错误的位置,而不是逐步遍历每行代码。 步骤 4: 设置另外的断点 行断点是最常见的断点类型。 当你想暂停某一行代码,可以使用行代码断点。...可以使用控制台来评估任意的 JavaScript 语句。 开发人员通常使用控制台在调试时覆盖变量值。 在您的情况下,控制台可以帮助找到啊修复 bug 的方法。
前言 我当时学习开发 Chrome 插件的时候,还不会 Vue,更别说 Webpack 了,所以使用的都是原生的 html 开发,效率就不提了,而这次就准备使用 vue-cli 来进行编写一个某...,因为使用的是 element-ui,所以页面很快就搭建完毕了,效果如图 悬浮窗 悬浮窗其实可有可无,不过之前写 Chrome 插件的时候就写了悬浮窗,所以 vue 版的也顺带写一份。...后续我都会使用 JQuery 来进行操作 在 src/content-script/bilibili.js 中写下如下代码 window.onload = function () { console.log...用过 Vue 的都知道写网页很方便,写 Chrome 插件未尝不是编写一个网页,当时的我在接触了 Vue 后就萌发了使用 vue 来编写 Chrome 的想法,当然肯定不止我一个这么想过,所以我在 github...如果有涉及到爬取数据相关的,我肯定是首选使用 HTTP 协议,如果在搞不定我会选择使用 puppeteerjs,不过 Chrome 插件主要还是增强页面功能的,可以实现原本页面不具备的功能。
这是chrome浏览器,因为headless没办法截图,所以我就把navigator对象的属性全部保存成了文本,这是使用headless时的信息: vendorSub: productSub: 20030107...经常和爬虫打交道的可能已经看出了,这是启用了webdriver协议之后会包含的字段,可是我们使用的chrome headless使用的是devtools protocol啊,怎么也会有这个标志呢?...没错,当你指定了“--headless”参数的时候,不管是什么协议,都会带有该字段,如果你不指定“--headless”参数使用devtools protocol控制chrome,那么就和使用正常的浏览器没有区别...解决方案 解决办法其实也不麻烦,大致有如下几点: 更换浏览器,如上图所示,这一特性是chrome 63以后添加的,那么只要用chrome 62即可,devtools protocol也支持chrome...62; 不使用headless模式,不使用headless模式也自然不会被检测到,当然,启动一个浏览器窗口来渲染页面,性能肯定是不及headless的,这点需要权衡; 只对必要的页面使用headless
作为一名新的开发人员,发现和修复 bug 挺难的。您可能会试图随意使用 console.log() 来调试代码使代码正常工作。 不要再这样了。 这篇文章将讲述正确调试的方法!...您将了解如何使用 Chrome 开发人员工具来设置断点并逐步完成代码。这是更有效的在代码中查找和修复 bug 的方法。...您可以使用其他类型的断点来暂停代码逐步靠近错误的位置,而不是逐步遍历每行代码。 步骤 4:设置另外的断点 行断点是最常见的断点类型。当你想暂停某一行代码,可以使用行代码断点。...可以使用控制台来评估任意的 JavaScript 语句。开发人员通常使用控制台在调试时覆盖变量值。在您的情况下,控制台可以帮助找到啊修复 bug 的方法。...,尝试使用不同的变量,现在 sum 可以正确计算了。
因此萌生了开发一个二维码Chrome Extension的想法(@ ̄ー ̄@)。...开发文档 Chrome插件本质上是以manifest.json为入口规定的一系列前端资源集合,基于Chrome浏览器提供的API,实现各种功能。...: MV3文件格式参考 manifest_version:manifest版本,之前为Manifest V2(MV2),Chrome推荐使用Manifest V3(MV3) permissions...:扩展要使用的浏览器权限,大部分Chrome扩展API均有权限依赖 action:定义插件操作行为对应的页面 default_popup:点击插件图标时的页面 icons:插件图标 添加chrome...2.2 功能开发 2.2.1 需求拆分 参考Chrome浏览器二维码功能: 2.2.2 链接展示 需要获取Chrome浏览器当前打开的tab,查阅开发文档可知对应API为chrome.tabs,并在manifest.json
使用typescript开发chrome扩展 记录一下使用typescript开发chrome扩展的相关配置。 1....安装依赖 必定需要用到的开发依赖项: chrome-types copy-webpack-plugin ts-loader typescript webpack-cli npm install chrome-types...基本目录结构截图 图片 chrome使用typescript目录结构 MySQL多层级树形结构表的搜索查询优化 使用WordPress作为小程序后端——APPID有效性前置检查 使用WordPress...作为小程序后端——小程序请求前置检查 Windows rclone挂载sftp 迁移——从Electron迁移到Eclipse Theia 使用typescript开发chrome扩展 use multiple
Google 浏览器 Chrome 是我现在主要使用的浏览器,Chrome 更新到 2.0 之后,除了支持 Greasemonkey 之外,也开始支持扩展。...启用 Google 浏览器 Extensions 现在目前 Chrome 官方已经提供了两款 Google Chrome 的扩展: Chrome Extensions: Gmail Checker...在 Google Reader 中订阅 这个扩展能够让你非常容易和快速使用 Google Reader 订阅当前网页的 Feed。...安装 + 下载源代码 当然对于那些想自己动手写 Chrome 扩展的同学,这里有一个教程教你如何创建一个非常简单的 Chrome 扩展。...目前删除 Chrome 的扩展比较麻烦,需要手工到你的用户数据目录(user data directory )下找到相应的扩展,然后删除它,不过 Chrome 承诺以后会更加容易删除扩展。 ----
selenium与chromedriver安装 安装chrome(有版本要求,linux和windows版本要求不同,可自行查阅,尽量使用61+版本的chrome) 先安装selenium库,在下载...需要验证的代理爬取京东单个商品:selenium+headless chrome+proxy(auth)(暂时无法使用headless方式) #!.../' def get_chrome_proxy_extension(): # 若要使用需要验证的代理,使用该函数生成插件,自行填写账号密码 username = 'xxxxxxxxxx'...('--proxy-server=%s' % proxy_address) # 使用不需验证的代理 # chrome_options.add_extension(get_chrome_proxy_extension...()) # 使用需要验证的代理 logging.info('Chrome using proxy: %s', proxy['https']) self.chrome
chrome实用插件: Chrome调试工具介绍: 快速切换文件 在源代码中搜索 在源代码中快速跳转到指定的行 使用多个插入符进行选择 设备模式 格式化凌乱的js源码 颜色选择器 改变颜色格式 强制改变元素状态...2,然后把hosts(没有后缀的文件)分别调换掉原本系统里的hosts文件,即可正常使用谷歌搜索。...或者ctrl+p后输入 :行号; 使用多个插入符进行选择 当编辑一个文件的时候,你可以按住Ctrl在你要编辑的地方点击鼠标,可以设置多个插入符,这样可以一次在多个地方编辑 设备模式 格式化凌乱的...在颜色预览功能使用快捷键Shift + Click,可以在rgba、hsl和hexadecimal来回切换颜色的格式 强制改变元素状态(方便查看不同状态下元素的样式) chrome控制台有一个可以模拟...,都可以使用Snippets,你可以在Source面板里创建、存储和运行这些Snippets。
使用谷歌/火狐浏览器分析 在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。...而浏览器和服务器之间的传输协议是HTTP,所以: HTML是一种用来定义网页的文本,会HTML,就可以编写网页; HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信。...Chrome浏览器提供了一套完整地调试工具,非常适合Web开发。 安装好Chrome浏览器后,打开Chrome,在菜单中选择“视图”,“开发者”,“开发者工具”,就可以显示开发者工具: ?...说明 Elements显示网页的结构 Network显示浏览器和服务器的通信 我们点Network,确保第一个小红灯亮着,Chrome就会记录所有浏览器和服务器之间的通信: ?...指定; 以及其他相关的Header; 通常服务器的HTTP响应会携带内容,也就是有一个Body,包含响应的内容,网页的HTML源码就在Body中。