`
文章列表
使用yield优雅抓取网页分页数据 在使用Python来抓取网页数据的时候,常常碰到分页数据,其中部分下一页按钮已经有具体的链接地址,而另外的可能是javascript来处理分页的。这要求同时能解析页面内容,又要采集下一页的url。怎样优雅用python写这样的代码呢?或者说怎样更pythonic?下面分别给出部分代码实例     def get_next_page(obj): '''get next page content from a url or another content ''' error_occurr ...
用任何语言都可以写出极其糟糕的代码,包括优雅强大的 Python 语言。在本文中,我们讨论看待测试的方式不同如何导致差异很大的 Python 代码。最后,讨论如何科学地度量代码差异。 简介 编写软件是人所承担的最复杂的任务 ...
  getFileModifiedTime.c #include <mysql.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #include <unistd.h> ...
  案例: 有一个应用程序需要把数据输出给远程tcp端口44441, 为了安全, 数据会再次转发到端口44442,从而使得连接到端口44442的应用可以实时接收到数据。    为此,在远程tcp主机编写了shell脚本如下: #!/bin/bash -l pipe=/tmp/testpipe ps -ef | grep -e '44441' -e '44442' | grep -v 'grep' | awk '{print $2;}' | xargs kill -9 > /dev/null 2>&1 trap "rm -f $pipe" ...
#!/bin/bash -l process_name='phantomjs' long_term=1 pids=` ps -ef | grep -i "$process_name" | grep -v 'grep' | awk '{print $2;}'` if [ "$pids" == "" ]; then echo "no phantomjs running" >/dev/null exit 0 fi for pid in $pids; do echo $ ...
     使用有道云笔记已有一年,整体体验良好。但它的网页剪报插件做得还不够好,所以自己亲自动手,制作了一个网页转换工具。亲们,可以体验下 网页转pdf或图片         Android 版:           扫一扫下载:
      MySQL从5.1.5开始,支持XML接口处理的两个函数: ExtractValue()和 UpdateXML().         需求:编写停车计费算法:        输入:Express Text(XML), BeginTime DateTime, EndTime DateTime;      输出:Decimal(10,2)-计费金额            ...
需求:  我们需要监控客户端是否已经掉线, 采用的做法是客服端定时发送消息到 socket server.  我们在socket server确认是否已经收到心跳消息,如果超时(timeout)则会剔除相应的客户端。           为此,我们准备在python抽象出原型雏形。熟悉Javascript的可能知道定时器函数setTimeout,setInterval.  我们在Python(2.7)也可有类似功能: 如下:      def set_interval(func,extraArgs,sec): def func_wrapper(): fun ...

Shell技巧几例

Shell技巧几例   一般我们的程序会有要求: 如果数据有变化,则更新到数据库。同时,我们会记录相关log,也可以从log中找出变化了的记录总数。  grep -o 'CLF6_F:.*$' CLF6_13_00_14_00_input.log | awk 'BEGIN {last="zzzzzxxx";} { if(last!=$0) {total++; last=$0;} } END { print "changed records is",total;}'   我们有时候需要定制数据替换,如找到含有关键字A的行,在此行将 关键字B ...
    Clone user / Dump views in MySQL     1. 数据库搬迁或复制的时候,需要同步MySQL user 及其权限,创建了脚本操作,如下:     #!/bin/bash -l if [ $# -lt 1 ]; then echo "usage: $0 [MySQLHost]" exit 1 fi MySQLHost=${1} MySQLbin="` ...
Phantomjs/Casperjs, HtmlUnit, Selenium在获取Javascript页面时特性对比 基于Phantomjs 2.0.0/Casperjs 1.1.0-beta3, Htmlunit 2.18, Selenium 2.47.1,在获取Javascript 页面时,对JavaScript engine,session/cookie支持, request url追踪, browser支持,以及访问速度,稳定性等方面进行对比如下:     框架/程序 对比项目 JavaScript engine Cookie requ ...
        偶尔一天,监控到程序异常:  OperationalError: (1213, 'Deadlock found when trying to get lock; try restarting transaction').        通过网络Seach,发现show innodb status (MySQL5.1以下可以用)/show engine innodb status(MySQL5.1以上可用) 查看  the LATEST DETECTED DEADLOCK 可以具体看到是哪两个SQL引起的死锁. 但需注意的是后面一个DEAD LOCK Info会覆盖之前的, ...
      需求: 远程unix主机cpu load 有时过高,现在需要监控它,当超过阀值则email报警. 访问该主机只能通过telnet,不能安装其他任何library。       现有资源: 已经有nagios环境,python已自带telnetlib模块,可以通过执行uptime命令获取1(5,10)分钟平均cpu load。              通常,用shell script 编写nagios命令规范如下:         echo "OK status: ….” exit 0 echo "WARNING status: …. ...
     1) 在/etc/profile里创建了环境变量,发现在指定用户下创建的cronjob运行期不能找到对应的环境变量的值(例如$PATH),在crontab下发现默认$PATH=/bin:/usr/bin。如调用的程序不在上述路径,则程序会报错:xxx not found.         上述解决的方案,最好的解决方法是在xxx.sh中第一行这样写:  #!/bin/bash -l 这样就是以登录方式执行shell script,你可以通过 man bash来查看是否支持 -l 这个参数。           为什么不用程序的绝对路径呢? 因为deploy一个脚本到多个主 ...
    与java apache log4j的ConsoleAppender,RollingFileAppender类似,python也有自己的实现,分别是logging.StreamHandler(),logging.handlers.TimedRotatingFileHandler.       下面是示例代码:   def script_path(): path = os.path.realpath(sys.argv[0]) if os.path.isfile(path): path = os.path.dirname(path) return ...
Global site tag (gtag.js) - Google Analytics