10 2018 档案
摘要:话不多说,都是干货!!! 页面的生命周期: 当打开一个页面的时候,会触发onLoad和onReady和onShow事件。 onLoad和onReady只触发一次。除非卸载了页面就是触发了onUnload事件。
阅读全文
摘要:一般遇到动态加载的网页就比较棘手,一般采用scrapy_splash和selenium这两种方式来解决。貌似scrapy_splash更强大,因为就从爬取美团这个网站而言,scrapy_splash可以实现,selenium没有实现。可能selenium没有设置对吧,按理说都应该可以的。 首先需要你
阅读全文
摘要:sub 方法 sub 方法用于替换。它的使用形式如下: sub(repl, string[, count]) 其中,repl 可以是字符串也可以是一个函数: 如果 repl 是字符串,则会使用 repl 去替换字符串每一个匹配的子串,并返回替换后的字符串,另外,repl 还可以使用 id 的形式来引
阅读全文
摘要:Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据。 如果安装了 IPython ,Scrapy终端将使用 IPython (替代标准Python终端)。 IPython 终端
阅读全文
摘要:创建文件模板 CrawlSpiders就是为爬取整站孕育而生的,我们以前是分页下一页,然后再yied。这样太麻烦。CrawlSpiders是你只需要写好规则之后。他就会根据你这一页的response得到符合条件的url,然后再进去,再分析。 只需要增加两三行代码就可以替换我们以前的分页逻辑。 Lin
阅读全文
摘要:Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。 Selenium 可以根据我们的指令,让浏览器自
阅读全文
摘要:安装方式 基本GET请求(headers参数 和 parmas参数) 1. 最基本的GET请求可以直接用get方法 2. 添加 headers 和 查询参数 如果想添加 headers,可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递,可以利用 params
阅读全文
摘要:css 不包含那个类 获取属性和文本 获取类page-en倒数第二个节点 xpath 获取<li>标签下hre 为 link1.html 的 <a> 标签 获取最后一个 <li> 的 <a> 的 href 获取倒数第二个元素的内容 获取<li> 标签下的所有 <span> 标签
阅读全文
摘要:scrapy框架真的是很强大。非常值得学习一下。本身py就追求简洁,所以本身代码量很少却能写出很强大的功能。对比java来说。不过py的语法有些操蛋,比如没有智能提示。动态语言的通病。我也刚学习不到1周时间。记录一下。全部干货。 首先安装scrapy框架。选择的ide是pycharm。 创建一个sc
阅读全文
摘要:python遇到的知识点,记录一下。方便学习。 文件相关操作 判断文件或者文件夹是否存在,若不存在就创建 把网络上的图片保存到本地 读取文件内容 拷贝文件 编码问题,字节和字符串的互转 md5加密 打开一张本地的图片 将字符串转换成 selector 用于xpath和css的提取
阅读全文
摘要:余庆先生提供了一个Java客户端,但是作为一个C程序员,写的java代码可想而知。而且已经很久不维护了。 这里推荐一个开源的FastDFS客户端,支持最新的SpringBoot2.0。 配置使用极为简单,支持连接池,支持自动生成缩略图,狂拽酷炫吊炸天啊,有木有。 地址:tobato/FastDFS_
阅读全文
摘要:需求:我们在接收到一个/api/upload 开头的url的时候 要转发到另外一个地址。但是又不想追加/api/upload 只想追加/upload 地址。 Nginx提供了rewrite指令,用于对地址进行重写,语法规则: 我们的案例: 首先,我们映射路径是/api/upload,而下面一个映射路
阅读全文
摘要:创建springboot项目 编写配置 需要注意的是,我们应该添加了限制文件大小的配置 controller 编写controller需要知道4个内容: 请求方式:上传肯定是POST 请求路径:/upload/image 请求参数:文件,参数名是file,SpringMVC会封装为一个接口:Mult
阅读全文
摘要:什么是cors CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,
阅读全文
摘要:首先看一个问题:在这个task集合中一共有多少个OPEN状态的?计算出它们的points属性和。在Java 8之前,要解决这个问题,则需要使用foreach循环遍历task集合;但是在Java 8中可以利用steams解决:包括一系列元素的列表,并且支持顺序和并行处理。 这里有很多知识点值得说。首先
阅读全文
摘要:现在我们来实现这样一个功能: 一个页面,包含登录和注册,点击不同按钮,实现登录和注册页切换: 编写父组件 index.html 编写登录组件 编写组件,这里我们只写模板,不写功能: 编写注册组件 新建单文件组件:register.js 在父组件中引用 在index.html中使用刚刚编写的两个组件
阅读全文
摘要:定义全局组件 我们通过Vue的component方法来定义一个全局组件。 组件其实也是一个Vue实例,因此它在定义时也会接收:data、methods、生命周期函数等 不同的是组件不会与页面的元素绑定,否则就无法复用了,因此没有el属性。 但是组件渲染需要html模板,所以增加了template属性
阅读全文
摘要:watch可以让我们监控一个值的变化。从而做出相应的反应。 示例: 注意:vue只能监听你这个对象刚初始化的时候的属性。比如上面的person对象,只有name字段,如果你在后期加上age字段。是监控不到的。
阅读全文
摘要:字符串扩展 ES6为字符串扩展了几个新的API: includes():返回布尔值,表示是否找到了参数字符串。 startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。 endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。 ES6中提供了`来作为字符串模板标记。我
阅读全文
摘要:Eureka服务端 注册中心 添加 @EnableEurekaServer // 声明这个应用是一个EurekaServer 编写配置: 启动服务,并访问:http://127.0.0.1:10086/eureka 将user-service注册到Eureka 服务提供者 通过添加@EnableDi
阅读全文
摘要:Spring提供了一个RestTemplate模板工具类,对基于Http的客户端进行了封装,并且实现了对象与json的序列化和反序列化,非常方便。RestTemplate并没有限定Http的客户端类型,而是进行了抽象,目前常用的3种都有支持: - HttpClient- OkHttp- JDK原生的
阅读全文