背景 做一个简单的spider用来获取python selenium实战教程的一些基本信息.因为python selenium每年滚动开课,所以做这样一个爬虫随时更新最新的开课信息是很有必要的. 预备知识 python语法,不会python的同学建议通过这个视频学习: 安装好robobrowser,没有安装的同学参考这里: 任务分解 这个简单的spider任务可以进行进一步的分解: 访问python selenium自动化测试班页面: 获取这个班的名称--python selenium自动化测试…
今天偶然发现了一个很有意思的python库——robobrowser.简单的看了一下,觉得这个东东作为轻量的爬虫还是很适合的.另外这个做一些简单的web测试也未尝不可. 好了,那么问题来了. 什么是robobrowser 官方的给出的答案是:RoboBrowser: Your friendly neighborhood web scraper.原谅我这一生不羁放纵不爱读书,真心不知道怎么用博大精深的汉语来翻译这句话,有知道的同学还请告诉一下. 简单来说robobrowser是一个浏览器,没有界面…
安装robobrowser 注意:这里假设你知道如何使用pip安装python的库的知识,如果你不了解这一块的话,点这里获取帮助. 强烈推荐使用pip安装. pip install robobrowser -i http://pypi.douban.com/simple/ 这里用上了豆瓣源,原因你懂得. 快速开始 新建1个start.py文本文件,然后敲入下面的代码 import re from robobrowser import RoboBrowser b = RoboBrowser(his…
背景 学习使用工具实际上不难,不过我们应该通过阅读工具源码来提升自己的水平. 多读代码,读好代码.很不错,robobrowser的代码简单易懂,值得学习. 预备知识 源码地址 一起其实是从browser.py开始的 要点 RoboState类里,页面上内容的抓取和处理实际上委托给了BeautifulSoup.RoboState类的_parsed对象实际上就是BeautifulSoup的实例: RoboState类中保存了每个请求的响应内容--response.content: RoboBrows…
背景 有一些站点是需要登录之后才能抓取内容的,另外做web测试的时候登录是家常便饭. 这一节里我们就以登陆testerhome为例,讲解一下robobrowser中form的操作. 预备知识 get_form方法用来抓取form; submit_form方法用来提交表单; form[name].value=方法用来给文本框赋值,也就是说往文本框里写内容; 代码 #coding: utf-8 import re from robobrowser import RoboBrowser url = '…
背景 在做spider的时候,我们经常会有点击链接的需求. 考虑这样的一个简单spider:获取qq.com主页上的今日话题中的内容. 一般思路是先去qq.com首页上找到今日话题的链接,然后点击这个链接到内容页面,最后抓取里面的内容就好了. 这一节里我们就要实现这个功能. 预备知识 robobrowser的follow_link方法可以点击链接并自动完成跳转. 代码 #coding: utf-8 import re from robobrowser import RoboBrowser url…
背景 本节的知识还是属于Beautiful Soup的内容. Beautiful Soup的find和find_all方法非常强大,他们支持下面一些类型的过滤器. 字符串 最简单的过滤器是字符串.在搜索方法中传入一个字符串参数,Beautiful Soup会查找与字符串完整匹配的内容,下面的例子用于查找文档中所有的<b>标签: soup.find_all('b') 正则表达式 如果传入正则表达式作为参数,Beautiful Soup会通过正则表达式的 match() 来匹配内容.下面例子中找出…
背景 本节的知识实际上是属于Beautiful Soup的内容. robobrowser支持Beautiful Soup,一般来说通过下面3个方法获取页面上感兴趣的内容 find find_all select 这一节主要通过一些例子来讲解这几个方法 预备知识 一般来说学习Beautiful Soup是需要了解过滤器这个概念的.不过为了让大家能够容易理解,这里暂时屏蔽过滤器的知识,感兴趣的同学可以去官网学习一下. 通过例子学习 这一节里我们的例子还是http://itest.info/cours…
这个双12,别人都在抢红包.逛淘宝.上京东,我选择再续我的“漫谈可视化”系列(好了,不装了,其实是郎中羞涩...) 上篇<漫谈可视化Prefuse(三)---Prefuse API数据结构阅读有感>主要介绍了可视化工具Prefuse API中主要解读的是prefuse.data包中的主要接口,并利用<漫谈可视化Prefuse(一)---从SQL Server数据库读取数据>中例子,将参数配置模块剥离出来,实现界面传值,绘制图形. 本篇决定不再贴API,实在没啥意思,还占篇幅(但是不…
鉴于近来国内访问Google的服务受阻,greatfire.org于前天推出了其基于亚马逊AWS的Google搜索镜像网站,地址是sinaapp.co.该网站随后因多家海外媒体的报道和众多微博大V的转发而一炮走红.我们不用想都知道,其结果必然是接受入侵检测装置的认证.不过比较狗血的是,新浪SAE旗下的sinaapp.com域名因为域名中也含有“sinaapp.co”字样,所以随同singaapp.co一同受到了“特殊照顾”——当从海外访问sinaapp.com域下的应用时,都会提示“连接被重置”…
为什么不更新kbe warring的代码解读了,因为在我看来那个demo讲完了实体就没东西可讲了,如果专心的看官方文档和PPT的话demo的代码后面没任何难点了已经,单纯的复制黏贴代码实在太过无聊.程序员一定要做点好玩的事情才行~ 好吧,今天开始想法直接改引擎底层,争取把引擎底层直接玩坏(*^__^*) 另外因为平时工作比较忙,这个系列会不定期的更新. 从自己的HelloWorld写起 先来点简单的,baseapp脚本层调用一个自定义的C++函数,输出helloworld! 因为是baseapp…
将被国内厂商玩坏多少?" title="千亿VR市场 将被国内厂商玩坏多少?"> 智能硬件行业在不断寻求新的突破口,当智能手机.平板.电视.家电等都司空见惯之后,能带来前所未有的虚幻现实体验的VR设备,则成为最重要的卖点之一.无论是在国内还是国外,虚拟现实设备成为巨头和初创团队竞相追逐的目标.而这个市场,据悉极有可能在短短数年内达到千亿元之巨. 但让人无奈的是,国外玩虚拟现实设备,是不断将其推向创新.革命.颠覆的层次,而国内却将其视为一种噱头,成为众筹.融资乃至提升股价…
这几天,我被一个js问题困扰到癫狂了! 事情是这样的,我之前写了个功能非常复杂的纯jquery代码的前端gridview控件,实现了大量的功能和效果,在一些项目里也用得很好. 最近有个项目,样式做了调整,把浏览器默认的box-sizing属性改成了border-box,然后界面和控件出了很多问题. 于是我开始着手解决这些问题.正当我以为都解决得差不多的时候,发现了一个诡异的现象,就是当我用鼠标拖动grid边框,做放大缩小的调整时, 发现无论我是放大还缩小操作,grid都是执行的缩小操作,但当我调…
一.前言 由于innerText并非W3C标准属性,因此我们无法在FireFox中使用它(修正:FF45+已经支持innerText属性),一般情况下我们可以使用textContent来代替,但它两者是否就能完全等同呢?在坑爹的表单元素(如input.textarea等)中表现是否依旧诡异呢?文本将记录一些实验结果,避免日后被玩坏. 二.innerHTML 由于innerText和textContent均为对innerHTML内容作不同的处理而成,因此我们需要先明确innerHTML属性的特点.…
在JVM的内存管理机制下很少发生内存溢出的情况.至少我碰见的少,好像在SSH我多次发布项目时候出现过一次.今天看见一个特简单的方法让内存溢出(好吧,我似乎作死了--!): public class InfiniteRecursion { public String toString(){ return "InfiniteRecursion address : " + this + "\n" ; } public static void main(String[] a…
三个IT屌丝创业的故事 从前有三个屌丝,聚在一起做网络.提供免费的网络服务,砸锅卖铁,通宵达旦,除了卖肾,啥都做了.3年后终于做到了五百万用户.对于年轻人来说,能把五百万人玩弄于鼓掌之间,已经是很牛逼轰轰的事了. 不过用户越多,成本越高.每年服务器.带宽租金.房租水电.广告运营等成本,已经达到了十七八万. 屌丝们不得不面对一个终极问题:如何盈利? 屌丝们定了三盘沙县水饺,围着一箱子的冰啤酒开始计算:按照最近一月的登陆情况来看,四百万个账号已经不活跃了.真正有商业价值的只有一百万人.如果开通xx功…
<?php echo"测试<br>"; $sql_connection = mysql_connect("localhost","ershugong","tuoqiangshijie"); var_dump($sql_connection); echo mysql_error(); //设置字符集 //mysql_query("set names utf8"); //选择数据库 mysql…
最近在伯乐在线读到一篇趣文,<如何在 Github『正确』做贡献>,里面各种能人恶搞 Github 的『Public contributions』,下面截取几个小伙伴的战绩: 顺藤摸瓜,发现原来有人已经做出『玩坏』Github 的工具啦,名叫 gitfiti.主要对应预先定义的模板,进行相应日期的 commit 操作,push 至 Github 后在贡献栏中生成相应像素点,并且利用 Github 贡献数不同颜色深度不同的机制,就可以在自己的贡献栏里面看见像素画了.怎么样,是不是心动啦,那么下面…
4.3  循环控制语句 在现实世界中,有这样一类现象: 只要油箱中的当前油量小于油箱容量100升,就一直往油箱中加油: 一直不断地为祖国辛勤工作,只要我还活着: 公司100000位员工,每个人的工资都增加10000元: 这些现象虽然各不相同,但它们都有一个共同的特点,那就是在某个条件(只要我还活着)下,或者某个范围(所有100000位员工)内,这些动作(辛勤工作.增加10000元工资)都是循环往复重复多次地出现.为了表达这类循环现象,C++提供了循环控制结构.又因为这些循环现象各有特点,为了准确…
谁还没遇上过NoClassDefFoundError咋地--浅谈字节码生成与热部署 前言 在Java程序员的世界里,NoClassDefFoundError是一类相当令人厌恶的错误,因为这类错误通常非常隐蔽,难以调试. 通常,NoClassDefFoundError被认为是运行时类加载器无法在classpath下找不到需要的类,而该类在编译时是存在的,这就通常预示着一些很麻烦的情况,例如: 不同版本的包冲突.这是最最最常见的情况,尤其常见于用户代码需要运行于容器中,而本地容器和线上容器版本不同时…
前面说点什么.. 没想到吧 嘴上说着不写的彩笔博主最后还是写了这篇东西.. Day -inf 在雅礼集训,打了四场模拟赛.. 真正说打得好的.. 也就那么一场 身体很差 心态很差 状态很差 虽然有书读 心里还是很慌 Day 0 早上晚起,无伤大雅 只能拿泡芙做早餐 报了道就开始和beginend颓了.. 下午写了一道似懂非懂的网络流题,一遍过很舒服 晚上很无聊的排练 广东人还是niubi 四川那边好像把___弄自闭了 突然通知笔试改了,心态崩了 十点睡觉,还行 Day 1 早上笔试,没ak 男神…
在文章<Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码>中,我有介绍到 Java 11 的八个新特性,其中关于 String 加强部分,我觉得有点意思,这里单独再拉出来讲. Java 11 增加了一系列的字符串处理方法,如以下所示. // 判断字符串是否为空白 " ".isBlank(); // true // 去除首尾空格 " Javastack ".strip(); // "Javastack" // 去除尾部…
该提示在Lodop旧版本中是: 提示"WebSocket没准备好,点确定继续",提示“C-Lodop没准备好”,新版本修改了该提示的描述“网页还没下载完毕,请稍等一下再操作.”,让问题更解释更直观. 问题原因:调用C-Lodop云打印时机太早,调用打印语句(print或preview等)时机太早,在页面第一次加载完成后有几百毫秒时间等待WebSocket通讯服务准备完成. 解决方法:方法一:等待C-Lodop准备好再执行调用打印方法打印,用如下写法,OpenPreview()代表自己的…
 问题描述: (1)javaWeb项目启动中,还没启动完成,在下面这个类加载另一个Bean类, (2)通过getBean方法获取到该Bean,可以获取到,不为null (3)但是,调用该Bean的方法insertSelective()方法,进不去该方法 解决方法: 项目启动时,延迟5秒即可,下面这个类等待5秒,等它调用的Bean加载完,就能调用了 public enum RfidRecordStorage { INSTANCE; private static Logger logger = Lo…
上一次将webpack1升级到3,也仅是 半年前,前端工具发展变化太快了,如今webpack4已经灰常稳定,传说性能提升非常高,值得升级. 一直用着的webpack3越来越慢,一分多钟的编译时间简直不能忍,升级之后在几个系统和几台电脑上评测,平均提高了7-9倍,生产模式的最突出 升级之后完整的 webpack4项目配置DEMO 已经放到Github中,欢迎围观 star ~ 关于如何升级到V4已经有很多优秀的文章,结合官方文档你也可以升级起来 本文仅说说本次升级主要做的改动优化点,或者坑 web…
速度快散热好 为什么U.2 SSD还没普及?   经典的影视剧中总有那么几位武林高手,江湖上只闻其名,不见其形.今天我们要聊的这位爷,誓要拳打南山M.2,脚踩北海SATA 3!它就是固态硬盘界久负盛名的「U.2」接口. 什么是U.2? U.2原名SFF-8639,本就只是一个代号,因为没能像周星驰的“9527”一炮而红只好改名换姓了.U.2接口的最大特色就是高速低延迟低功耗,支持NVMe标准协议,并且走的是PCI-E 3.0 x4通道,理论传输速度高达32Gbps,而SATA只有区区6Gbps,…
作者简介:何红辉,Android工程师,现任职于友盟. 顾名思义,AndroidEventBus是一个Android平台的事件总线框架,它简化了Activity.Fragment.Service等组件之间的交互,很大程度上降低了它们之间的耦合,使我们的代码更加简洁,耦合性更低,提升了我们的代码质量.但它能做的却不仅限于这些.经过定制,它能完成很多有意思的功能,那么究竟该怎么做呢?就让我们一起往下看吧. 不堪回首的痛 首先,让我们先来看看这么一个场景:你是否在开发的过程中遇到过从Activity-…
一.前言 由于innerText并非W3C标准属性,因此我们无法在FireFox中使用它,一般情况下我们可以使用textContent来代替,但它两者是否就能完全等同呢?在坑爹的表单元素(如input.textarea等)中表现是否依旧诡异呢?文本将记录一些实验结果,避免日后被玩坏. 二.innerHTML 由于innerText和textContent均为对innerHTML内容作不同的处理而成,因此我们需要先明确innerHTML属性的特点. 赋值操作:先对值内容进行模式匹配,然后把处理后的…
Newbe.Claptrap 项目周报 1,第一周代码写了一点.但主要还是考虑理论可行性. 第一次接触本框架的读者,可以先点击此处阅读本框架相关的基础理论和工作原理. 周报是啥? 成功的开源作品,离不开社区贡献者的积极参与.作为一个新启动的轮子项目,项目联合创始人[月落]有交代: “我知道你代码能力也不怎么样,你就把你的想法每周的交代清楚.让他人看到项目的价值.等待越来越多的人发现项目价值所在的时候,自然就会给予更多的关注,甚至于参与的项目的开发当中.所以你要每周都写一下周报.周报最好侧重于讲解…
U40620 niiickの还没想好名字的题 给定一个长度为\(n\)的序列\(a_1,a_2...,a_n\) 要求将这\(n\)个数分为\(m\)组,每组可以有任意多个数,但同一组中的数必须是原序列中连续的一段 求如何分组能使得各组的标准差最小, 即求\[min(\sqrt{\sum_{i=1}^m\frac{(x_i-\overline{x})^2}{m}})\]其中\(x_i\)为第\(i\)组数的和,\(\overline{x}\)为各组数和的平均值 求这个最小值 纪念一下交了19遍(…