var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-333696-1']); _gaq.push(['_trackPageview']); _gaq.push(['_trackPageLoadTime']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
  • 2011年08月08日

    使用LinkChecker 检查网站链接

    分类:

    LinkChecker 是一款开源的检查网页链接有效性的程序。

    主要特性

    • 循环遍历和多线程检查
    • 输出各种格式检查结果:text, HTML, SQL, CSV, XML或者不同格式的sitemap图
    • 支持 HTTP/1.1, HTTPS, FTP, mailto:, news:, nntp:, Telnet 和本地文件链接检查
    • 可使用正则表达式对链接的url进行过滤
    • 支持代理服务器
    • 对HTTP,FTP和Telnet 支持用户名和密码验证
    • 遵守 robots.txt 法则
    • 支持 Cookie
    • 支持 HTML 和 CSS 语法检查
    • 反病毒检查
    • 提供命令行和图形界面和Web三种用户接口

    其它选项,详见LinkChecker 命令行用户手册

    linkchecker-gui 用法

    1. 下载Windows版 到 PC本机之后安装
    2. LinkChecker安装成功后,双击运行linkchecker-gui.exe
    3. 点击菜单“Edit” -> “Options”,在"Linkchecker options"窗口切换到“Configuration file”,点击按钮“Edit”可以编辑检查选项,如代理等,然后关闭回到Linkchecker主界面
    4. 在URL 栏 输入你想要检查的网页网址,点击按钮“Start”
    5. 等待出结果,这个gui工具对中文支持不好

  • 2011年08月03日

    验证手机网址的有效性

    分类:

    判断一个网页是否适合手机浏览提供了几点思路。

     

    验证网址的有效性,用手机浏览器的User Agent(UA, 不同的UA访问网址链接会转向不同的网页,于是需要区分Andorid和桌面模式等网页浏览方式如果浏览器允许设置)向该网址“GET”:

    1. 判断网址返回的HTTP状态码,200为可访问

    2. 先判断网页的DoctypeXHTML5或者XHTML Mobile Profile或者XHTML 1.0 DTDs(尚未判断WML网站,但也有不支持wml的手机浏览器能浏览的如大河网中华国学网,如果不是再判断 safari引入的Viewport(必要性见A tale of two viewports — part two即为WAP站点,默认所有网址的编码为utf-8。碰到了五大类问题:

    a. 有些网站在浏览器上返回同发送UA返回并不一致如搜狐手机网站:搜狐军事搜狐体育搜狐新闻搜狐体彩搜狐财经搜狐科技

    b.网址重定向,如豆瓣网,使用httplib2解决大部分问题,但无法解决页面内的刷新标签“”,如联通WO邮箱

    c.网页不遵循DTD规范,如手机搜狐网触版,其DTD为“DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"”;同花顺财经门户,其DTD为“DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" " http://www.wapforum.org/DTD/xhtml-mobile10.dtd"”。

    d.网页无任何规律,除非用手机浏览器浏览,如91熊猫看书下载铁血网

    e. 网络或站点不稳定导致结果偶尔出现500和判断是否为WAP站点错误。

     

     

    XHTML_DTD = ['DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"',

    'DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"',

    'DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"',

    'DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd"',

    'DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"',

    'DOCTYPE html']

     

    WML_DTD = ['DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"',

    'DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"',

    'DOCTYPE html PUBLIC "-//WAPFORUM//DTD WML 2.0//EN" "http://www.wapforum.org/dtd/wml20.dtd"']

  • 2011年04月15日

    Node.js 简介

    分类:

    Node.js是构建在JavaScript引擎V8之上的JavaScript环境,它是一个异步事件驱动I/O模型,它能够非常好地安装在Linux, MacintoshSolaris,通过虚拟机MinGWCygwin(编译和运行方法)它也能运行在其它UnixWindows平台。

     

    Node.js的特性

    1. 单线程

    2. 异步

    3. 非阻塞IO

    4. 事件驱动(详见Understanding the node.js event loop

    5. Google V8

    目前应用举例有客户服务器代码,业内评价见文虚拟研讨会:Node.js生态系统之框架、库、最佳实践

     

    Node.net介绍)是Node.js.NET运行时上的JavaScript实现,目前尚未构建在V8引擎之上。

  • 2011年04月13日

    VBScript 运算符

    分类:

    VBScript中布尔关键字False0True1VBScript功能列出了所有相关的内容。

    VBScript运算符处理顺序为:先数学运算符,再比较运算,最后逻辑运算符。比较运算符从左到右求值。需要注意还有一个特殊的赋值运算符,比较运算符是按位比较参考文Not Logical Is VBScript

    看下面的代码,所有判断分支都弹出:

    VBScript语言:
    dim a :a = True
    If a Then
    msgbox "vbBoolean"
    End If
    If a=True Then
    msgbox "Comparison Operator"
    End If
    If a="True" Then
    msgbox "Assignment Operator"
    End If
    If a = -1 Then
    msgbox "bool value"
    End If

    When Are You Required To Set Objects To Nothing?介绍了设置对象为空有利于解决:

    1.对象间循环引用,需要按正确顺序设置为空

    2.设置昂贵的对象为空当你不需要再使用这些对象在它们离开作用域范围前

  • 2011年03月09日

    GAE Python天气预报

    分类:

    虽然前文提到的免费资源仍然还可以用,但感觉数据不太准确,于是换用中国天气网的天气预报7天)。不同于先前容易地抓取XML,现在需要解析城市所在网页。注:此网站还有两个数据源:1.返回Json数据(6天):http://m.weather.com.cn/data/[CityCode].html2.Wap网页(5天):http://wap.weather.com.cn/wap/weather/[CityCode].shtml

     

    这时用到了一款优秀的开源Python解析HTML网页的库Beautiful Soup,我用的是版本3.2.0,其帮助不全但比没有强。由于中国天气网的网页连接为Keep-Alive、传输编码为chunked(httplib已支持),所以选用开源的Pythonhttplib2下载网页。

     

    具体解析的思路是其数据显示在table标签中,以此为主以此抓取相应标签中的内容,然后用逻辑将其串联起来,Google 文件中的excel中有抓取网页的api也是采用了这种思路。需要注意,这个网站页面随着时间变化而呈现不同数量的表格,还有日期在周六日标签不同。

     

    在调试python过程中又遇到了该死的编码问题,一定要注意所有需要编码一起输出的变量在输出前进行相同编码转换;还有print可以极大地辅助调试,但它同变量赋值和输出还是不同。

     

    先前所用的天气预报,由于上面用户众多,发送短信时间没一次不推延的,所以暂停使用,用刚搭建好自己的服务。