作者: 毛狐狸

668 篇文章

将托管于 gitbook 的在线图书转换成 pdf
2015 from---http://bingu.net/ 最近打算折腾下 Android APP,辗转找到 ”Android官方培训课程中文版“。这是托管于 gitbook 的网络热心人士翻译的 Android 官方培训课程,他们虽然提供 pdf 版下载,但提供的版本低,字体丑。看不过眼,于是想自己转换个最新版本的。这一玩竟然玩了一个星期,最后发现跟”糟糕的网络“以及 gitbook-pdf 算是白玩了一星期,因为根本就不是跟他们玩的啊!为避免各位像我这般折腾,这里记录下如何正确地”将托管于 gitbook 的在线图书转换成 pdf“。 使用的环境是:ubuntu 14.04,git 1.9.1 首先,装上需要用到的工具 gitbook,calibre $ apt-get install nodejs calibre # gitbook …
selenium webdriver 你所不知道的quit 和close
2014-01-02 from---http://blog.sina.com.cn/s/blog_53f7a75b0101l1jn.html 我用selenium webdriver(以后简称SW) 驱动谷歌浏览器进行网页数据的获取。之所以用谷歌,主要是由于它是轻量级的,速度快。 做数据获取,SW 是不错的选择。有人总是说,SW速度慢,比不上httpclient或者HtmlUnit,它们直接操作底层数据来的更加痛快。可是,不得不考虑的是,网络数据获取是“你情我愿”的事情。你本地的程序运行再快,服务器那边给你CUT!你照样玩不转。所以,只要计算机能力足够强大,SW配合多线程,足以。 最近遇到一个恼火的问题,就是quit 和close,二者都是关闭浏览器。  ChromeDriver chrome = new ChromeDriver(); c…
JDBC连接数据库使用SERVICE NAME、SID以及TNSName不同写法
本周使用jdbc连接客户的oracle时总提示超时。 一直使用SID来连接数据库的。尝试换成Service Name后连接成功。 Java JDBC Thin Driver 连接 Oracle有三种方法。 格式一: 使用ServiceName方式: jdbc:oracle:thin:@//<host>:<port>/<service_name> 例 jdbc:oracle:thin:@//xxx.xxx.xxx.xxx:1526/CDEV @后面有//, 这是与使用SID的主要区别。(11g在@后不加//也OK) 这种格式是Oracle 推荐的格式. 因为对于集群来说,每个节点的SID是不一样的,而SERVICE NAME可以包含所有节点。 格式二: 使用SID方式: jdbc:oracle:thin:@…
SQL Server中利用正则表达式替换字符串
2013 from---http://blog.csdn.net/return_false/article/details/11984613 建立正则替换函数,利用了OLE对象,以下是函数代码: [sql]view plain copy --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数 CREATE FUNCTION dbo.RegexReplace (     @string VARCHAR(MAX),   --被替换的字符串     @pattern VARCHAR(255),  --替换模板     @replacestr VARCHAR(255),   --替换后的字符串…
chmod只修改子目录或文件的权限
2016-01-07 16:03 from---http://blog.csdn.net/shi_yi_fei/article/details/50476973 在发布站点的时候,有时候目录是可以有写入权限的,但是目录下的文件是不允许修改的。这对于防范黑客很有益。 所以我们应该这么做。 一、目录权限设置很重要:可以有效防范黑客上传木马文件. 如果通过 chmod 644 * -R 的话,php文件就没有权限访问了。 如果通过chmod 755 * -R 的话,php文件的权限就高了。 所以就需要分开设置目录权限和文件权限: linux 服务器权限:经常要用到的命令: find /path -type f -exec chmod 644 {} \;  //设置文件权限为644 find /path -type d -exec chmod 75…
nginx的location配置详解
2016-03 from---http://blog.csdn.net/tjcyjd/article/details/50897959 语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。 ~ 开头表示区分大小写的正则匹配 ~*  开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任何请求都会匹配到。 多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考): 首先匹配 =,其次匹配^~,…
python selenium 爬虫页面滚动条滚动到页面底部
2016-04-20 08:48 from---http://blog.csdn.net/u011806486/article/details/51197660 用到Python爬虫时候的网页需要拖动滚动条才能获取下一步操作,网上大多数说的是调用js代码,自己用的不行,不能拖动到页面的最底部。现在上传我自己的代码,供大家相互学习借鉴: from selenium import webdriver from selenium.common.exceptions import TimeoutException #引入ActionChains鼠标操作类 from selenium.webdriver.common.action_chains import ActionChains driver= webdriver.Chrome() driver…