谷歌浏览器

Python XPath抓取小说《三国演义》 《二》

你。 提交于 2020-01-20 14:32:37
昨天的代码 可以达到爬虫的目的 但是效果不理想,容易中断, 今天做了改进 增加写入文本,判断是否创建多层文件夹,增加了随机headers 可以多爬一些内容 不过还是会中断... from lxml import etree import requests import time import os import random def getHeaders(): #随机获取一个headers user_agents = ['Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50', 'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36', 'Mozilla/5.0 (Windows NT

编码规范-html.md

旧街凉风 提交于 2020-01-20 00:28:01
写在前面 对于不同的编程语言来说,具体的编码规范各不相同,但是其宗旨都是一致的,就是保证代码在高质量完成需求的同时具备良好的可读性、可维护性。 本文大部分内容来自网上,仅供个人参考学习! 网络上的知识浩如烟海,而学到了才是自己的!! 然后,老规矩,带上我们可爱的小伙伴... 语法 用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致展现的方法。 嵌套元素应当缩进一次(即两个空格)。 对于属性的定义,确保全部使用双引号,绝不要使用单引号。 不要在自闭合(self-closing)元素的尾部添加斜线 -- HTML5 规范中明确说明这是可选的。 不要省略可选的结束标签(closing tag)(例如,</li> 或 </body>)。 doctype 为每个 HTML 页面的第一行添加标准模式(standard mode)的声明,这样能够确保在每个浏览器中拥有一致的展现。 HTML5 doctype <!DOCTYPE html> <html> </html> HTML 4 doctype <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www

web前端入门到实战:Html头部meta标签

这一生的挚爱 提交于 2020-01-19 20:11:21
meta元素有4个属性:name、http-equiv、content、charset.meta标签通过name属性来表述页面文档的元信息,通过http-equiv属性设置http请求指令,通过charset设置页面的字符编码。按照属性设置分类,meta可以分为三类: name属性和content属性组合,构成名称/值对,用于描述网站信息. 标准的meta名称包括application-name、author、description、generator等。 示例代码: <meta name="keywords" content="british,typeface,font,fonts"/> 其中keywords和description这两个名称的使用率最高,是搜索引擎优化的主要手段之一,推荐读者使用。 http-equiv属性和content属性组合,设置特定的http指令; 其中content-type、default-style和refresh已经确定,content-language和set-cookie还未正式确定. 此类型meta应该谨慎使用。不推荐使用<meta http-equiv="refresh" content="300"/>,某些搜索引擎遇到此meta时会停止解析 页面剩余的部分。<meta http-equiv="default-style"

Chrome 开发者工具介绍

雨燕双飞 提交于 2020-01-19 15:47:08
作为一个程序员我认为我们一定要对自己使用的工具很熟悉,这样才能在工作当中游刃有余,今天我要给大家讲的不是我们常常使用的编辑器,而是我们的Chrome浏览器控制台。 Chrome 开发者工具是一套内置于Google Chrome中的Web开发和调试工具,可用来对网站进行迭代、调试和分析。 打开谷歌浏览器控制台 在Chrome菜单中选择 更多工具 > 开发者工具 在页面元素上右键点击,选择 “检查” 使用 快捷键 Ctrl+Shift+I (Windows) 或 Cmd+Opt+I (Mac) 使用另外快捷键 F12(Windows)或 fn+F12(Mac) 了解面板 和百分比圈在一起的是手机的状态。一共四个选项: 在线【online】 中端手机【mid-tier mobile】 低端手机【low-end mobile】 离线【offline】 元素面板【Elements】 使用元素面板可以自由的操作DOM和CSS来迭代布局和设计页面. 控制台面板【Console】 在开发期间,可以使用控制台面板记录诊断信息,或者使用它作为 shell在页面上与JavaScript交互。 关于更多console的内容请看: 你不知道的console,控制台也能玩出花样 源代码面板【Sources】 在源代码面板中设置断点来调试 JavaScript ,或者通过Workspaces(工作区

Chrome控制台

风格不统一 提交于 2020-01-19 09:56:24
先的简单介绍一下chrome的控制台,打开chrome浏览器,按f12就可以轻松的打开控制台 大家可以看到控制台里面有一首诗还有其它信息,如果想清空控制台,可以点击左上角那个 来清空,当然也可以通过在控制台输入console.clear()来实现清空控制台信息。如下图所示 现在假设一个场景,如果一个数组里面有成百上千的元素,但是你想知道每个元素具体的值,这时候想想如果你用alert那将是多惨的一件事情,因为alert阻断线程运行,你不点击alert框的确定按钮下一个alert就不会出现。 下面我们用console.log来替换,感受一下它的魅力。 看了上面这张图,是不是认识到log的强大之处了,下面我们来看看console里面具体提供了哪些方法可以供我们平时调试时使用。 目前控制台方法和属性有: ["$$", "$x", "dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents", "inspect", "copy", "clear", "getEventListeners", "undebug", "monitor", "unmonitor", "table", "$0", "$1", "$2", "$3", "$4", "$_"]

Chrome开发者工具 debug 调试

与世无争的帅哥 提交于 2020-01-19 05:55:49
Chrome 的开发者工具分为 8 个大模块,每个模块及其主要功能为: Element 标签页: 用于查看和编辑当前页面中的 HTML 和 CSS 元素。 Network 标签页:用于查看 HTTP 请求的详细信息,如请求头、响应头及返回内容等。 Source 标签页:用于查看和调试当前页面所加载的脚本的源文件。 TimeLine 标签页: 用于查看脚本的执行时间、页面元素渲染时间等信息。 Profiles 标签页:用于查看 CPU 执行时间与内存占用等信息。 Resource 标签页:用于查看当前页面所请求的资源文件,如 HTML,CSS 样式文件等。 Audits 标签页:用于优化前端页面,加速网页加载速度等。 Console 标签页:用于显示脚本中所输出的调试信息,或运行测试脚本等。 代码格式化 一般情况下上线前 js 文件在都会压缩一下, 压缩的 javascript无法设定断点. 在 Sourse 面板下面打开一个压缩的js文件,会有个 Pretty print 按钮(这种符号 {}), 点击会将压缩 js 文件格式化, 方便设断点。 查看元素绑定事件 在 Elements 面板, 选中一个元素, 然后在右侧的 Event Listeners 下面会按类型出这个元素相关的事件, 也就是在事件捕获和冒泡阶段会经过的这个节点的事件. ajax中断 在 Sourse

VS Code - Debugger for Chrome调试JavaScript的两种方式

房东的猫 提交于 2020-01-18 04:00:39
VS Code - Debugger for Chrome调试JavaScript的两种方式 最近由于出差的缘故,博客写的不是很多,一直想写一篇VS Code - Debugger for Chrome相关的文章,没想到一直拖到了今天。VS Code 开源以后确实在社区得到了很多人的支持,当中很多优点想必不用我多说,今天讨论的主题是Debugger for Chrome这个插件的使用。在网上简单找了一下,没有找到这个主题讲的特别好的文章,于是笔者写了这篇文章。 说实话,看了如下这篇文章,对于如何上手可能很多人还是一知半解,觉得说的不够透彻,因为关于如何new instance和attach,这篇文章写得不够透彻,也不够详细。 https://code.visualstudio.com/blogs/2016/02/23/introducing-chrome-debugger-for-vs-code 下面我们来简单分析一下VS Code - Debugger for Chrome调试JavaScript的两种方式的要点 1. 首先是要有一个.vscode/launch.json文件,这个文件需要建在源码文件夹下,其中.vscode是个目录,launch.json是一个调试用的文件,调试器靠他来new instance和attach,示例如下,前半部分配置用于new

在 VS Code 和 Chrome 中调试

余生长醉 提交于 2020-01-18 04:00:03
先决条件 你必须安装好 Chrome 和 VS Code。同时请确保自己在 VS Code 中安装了 Debugger for Chrome 扩展的最新版本。 请通过 Vue CLI ,遵循它的 README 中的安装文档安装并创建一个项目。然后进入这个新创建的应用的目录,打开 VS Code。 在 Chrome Devtools 中展示源代码 在可以从 VS Code 调试你的 Vue 组件之前,你需要更新 webpack 配置以构建 source map。做了这件事之后,我们的调试器就有机会将一个被压缩的文件中的代码对应回其源文件相应的位置。这会确保你可以在一个应用中调试,即便你的资源已经被 webpack 优化过了也没关系。 打开 config/index.js 并找到 devtool 属性。将其更新为: devtool: 'source-map', 从 VS Code 启动应用 如果使用 Vue CLI 3 你需要设置 vue.config.js 内的 devtool 属性: module.exports = { configureWebpack: { devtool: 'source-map' } }    点击在 Activity Bar 里的 Debugger 图标来到 Debug 视图,然后点击那个齿轮图标来配置一个 launch.json 的文件,选择

UA池和代理池

若如初见. 提交于 2020-01-18 00:27:55
2. UA池:User-Agent池 - 作用:尽可能多的将scrapy工程中的请求伪装成不同类型的浏览器身份。 - 操作流程: 1.在下载中间件中拦截请求 2.将拦截到的请求的请求头信息中的UA进行篡改伪装 3.在配置文件中开启下载中间件 代码展示: #导包 from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware import random #UA池代码的编写(单独给UA池封装一个下载中间件的一个类) class RandomUserAgent(UserAgentMiddleware): ​ def process_request(self, request, spider): #从列表中随机抽选出一个ua值 ua = random.choice(user_agent_list) #ua值进行当前拦截到请求的ua的写入操作 request.headers.setdefault('User-Agent',ua) ​ ​ user_agent_list = [ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 " "(KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",

Chrome浏览器你可以选择知道的知识

倾然丶 夕夏残阳落幕 提交于 2020-01-17 22:27:31
Chrome浏览器我想是每一个前端er必用工具之一吧,一部分原因是它速度快,体积不大,支持的新特性也比其它浏览器多,还有一部分我想就是因为它的控制台功能强大了吧,说它是神器一点也不过分,很方便。但其实很多开发者并没有用出控制台的精髓,只是使用简单的console.log();其实控制台功能远远不止这么简单哦。 1.console.clear console.clear();清空控制台,这个应该和console.log知名度一样高吧。 2.console.log ('普通信息') 3.console.info ('提示性信息') 4.console.error ('错误信息') 5.console.warn ('警示信息') 大家都会用log,但很少有人能够很好地利用console.error,console.warn 等将输出到控制台的信息进行分类整理。他们功能区别不大,意义在于将输出到控制台的信息进行归类,或者说让它们更语义化。 6.console.group 与console.groupEnd 如果再配合console.group 与console.groupEnd,可以将这种分类管理的思想发挥到极致。这适合于在开发一个规模很大模块很多很复杂的Web APP时,将各自的log信息分组到以各自命名空间为名称的组里面。 这样的控制台信息看上去就一目了然了