微信公众号内容接口

今天在V2EX上发现了一个上搜索微信内容的好网站 http://weixin.sogou.com/ 练习爬虫的同学有福了,没事儿干可以试试。 接口地址: http://weixin.sogou.com/gzhjs 获取方式: GET 参数: cb 必须 固定值 sogou.weixin.gzhcb openid 必须 公众号的唯一ID,可以通过搜索结果页面获得 page 可选 页码 默认第一页 每页最多十条记录 t 可选 请求发送的时间,目测没啥大用 最近貌似对openid加密了,等高人破解吧。 dmsYotdg%2F1V4oas03wIdducg7w5SL9M%2BYAL3GsHdR%2Fw9aG9Qzsh6XnA%2FUqKuQ66p8tRkK oIWsFt4Dl6kREBsD_KrMA84ThiIA wDssoe6gmmM8o%2FDMnpcWKuHwEPHxqeOZXzd%2FXytWShm4vQlImQmVes2pA7cYWfc%2FwudCK oIWsFt5sM7wz7isNXkl01is9M834 IAsHogvgG8dho2KKG6sO2uI3QooM18Hx%2BZF7o7%2BjinhzOVx5t3EcYmhn93gQQgsYira4N oIWsFt0fiD095kHlyHMIXEM7PrZc M8sGoC2gu6ZRohqri5nKnuau%2FD8g0jkqKyfAW8cjgPLn1e3wwAZSEM%2FMsVhWFQqp7%2Bz%2B9 oIWsFtwFWRis8pbm2-hOgllnpZfw 6Ss7od5gsiLBoala%2BGkVduU4PRslLs6USIzFeWxJXDR4oyMBZNvWwNovVPSmZJ6GVI7PG oIWsFt4UdPREjjItJo-JsJhoTjSU Qqsoo2gg7EDuovYnPkpxGu22Hv1%2FLF9MkC4AtaAGVcP%2B49dhr5tmnOpMZFpMtNQfp%2BnRv oIWsFt-abnxH6yhUGXNtgwhtsvS4

January 22, 2015 · 1 min · Me

python格式化输出dict等集合对象

调试程序的时候,如果需要打印出变量的信息,在python中很容易,一句print即可,他几乎可以打印任何类型的对象,不像PHP中,有一堆echo(),print(),print_r(),var_dump(),让人头疼! 但是PHP的打印函数有个好处,就是打印格式良好,而Python的打印信息就不是很友好了,如 # 模拟一个很大的键值对 dic = {} for i in xrange(201): dic[i] = "value for %d" % i print dic 其结果我就不打印了,总之很难看! 如何让python那冗长而且没有格式的打印变得更直观,方法有两种。 自定义dump 此方法来自stackoverflow # 以后需要有格式的打印一个集合对象,直接使用dump(xxx)即可! # 不要忘了import sys import sys def dump(obj, nested_level=0, output=sys.stdout): spacing = ' ' if type(obj) == dict: print >> output, '%s{' % ((nested_level) * spacing) for k, v in obj.items(): if hasattr(v, '__iter__'): print >> output, '%s%s:' % ((nested_level + 1) * spacing, k) dump(v, nested_level + 1, output) else: print >> output, '%s%s: %s' % ((nested_level + 1) * spacing, k, v) print >> output, '%s}' % (nested_level * spacing) elif type(obj) == list: print >> output, '%s[' % ((nested_level) * spacing) for v in obj: if hasattr(v, '__iter__'): dump(v, nested_level + 1, output) else: print >> output, '%s%s' % ((nested_level + 1) * spacing, v) print >> output, '%s]' % ((nested_level) * spacing) else: print >> output, '%s%s' % (nested_level * spacing, obj) pprint 此方法来自官方,可以自定义缩进,宽度等信息。...

January 22, 2015 · 1 min · Me

mysql中localhost和127.0.0.1的区别

mysql的默认的root用户会有很多行,自习观察后你就会发现每行的用户名或密码可能相同,但是host一定不同,host是登陆用户的主机名,也就是说,‘localhost’,‘127.0.0.1’,‘phpgao.local’,'%‘都算不同的用户! 理解了这一点后,那么我的问题就附上水面了! 有些TX经常会遇到这个问题: 使用PHP连接mysql数据库,使用localhost作为主机名总是连接失败,但是使用'127.0.0.1’就可以顺利连接,这到底是为什么? mysql中HOST为localhost和127.0.0.1到底有什么区别? 经过一番搜索,老高总结如下: 使用到的命令 mysql>status; mysql>show grants; 类Unix系统下,如果不使用-h指定主机名或者使用了localhost,那么会使用unix domain socket与mysql服务器沟通,比TCP/IP快一些!所以你想使用TCP/IP协议,请将host指定为'127.0.0.1’。 PHP连接mysql如果使用’localhost’发生问题,首先可以明确的是PHP会试着使用unix domain socket与服务器连接,所以请检查php.ini中mysql.default_socket = /var/mysql/mysql.sock是否配置正确。 如果想要明确连接方式,可以再配置文件中显式声明 protocol=tcp 在mysql的官方文档中解释道:如果mysql在win上跑,如果系统开启了–enable-named-pipe,然后访问服务器的时候没有指定hostname,那么mysql客户端会以pipe为优先连接,如果连接失败,那么再会去尝试使用TCP/IP去连接。你可以指定hostname为.在win下强制使用pipes。 If the MySQL server is running on Windows, you can connect using TCP/IP. If the server is started with the –enable-named-pipe option, you can also connect with named pipes if you run the client on the host where the server is running....

January 19, 2015 · 1 min · Me

在路由器下载文件

昨天晚上用wget命令下载了WOW客户端,要是搁到往常,还必须开机电脑下载,现在只需要再路由器的ssh里执行以下即可! 离线下载BT和ED2K还在研究中 wget http://wow.zip 2>&1 >/dev/null &

January 15, 2015 · 1 min · Me

将你的git协议由https变为ssh

你是不是已经厌倦了每次git push的时候每次都要输入用户名密码,使用下面的方法可以让你使用ssh协议通过密钥验证的方式让你得到解脱。 有两种修改方法 不过再实施前,请先准备好自己的密钥 ssh-keygen -t rsa -C "your_name" 然后登录https://github.com/settings/ssh,添加当前计算机的~/.ssh/id_rsa.pub公钥内容到github。 之后我们使用ssh git@github.com验证是否添加成功,如果返回以下内容,即代表添加成功! Hi phpgao! You’ve successfully authenticated, but GitHub does not provide shell access. 下一步就是让我们的git使用公钥验证。 clone 保存你的最后一次修改并提交。 删除项目 使用下面的命令clone项目 # 采用ssh的方式克隆项目 # someaccount/someproject.git 中 some account为github用户名/someproject为仓库名 git clone git@github.com:phpgao/BaiduSubmit.git 修改https git remote set-url origin git@github.com:someaccount/someproject.git 顺便提一下,老高的git push总是报warning: push.default is unset错误,今天终于知道为啥了。原来是版本兼容性的原因,低版本的git push如果不指定分支名,就会全部推送,而新版只会推送当前分支。 解决的办法也很简单,我们只需要明确指定应该推送方式即可,至于选择哪种方式,It’s up to you. # 全部推送 git config --global push.default matching # 部分推送 git config --global push.default simple 完

January 15, 2015 · 1 min · Me

kangle的安装和使用

kangle是一款国人产的服务器软件,老高经常使用它搭建测试环境。 安装 kangle的安装主要分两大块:kangle+easypanel。 # centos下一键安装命令 yum -y install wget;wget http://download.kanglesoft.com/easypanel/ep.sh -O ep.sh;sh ep.sh 使用 安装完成后,使用方法: 管理面板网址: http://服务器ip:3312/admin/ 独立网站管理: http://服务器ip:3312/vhost/ Reference: http://www.kanglesoft.com/thread-5891-1-1.html

January 14, 2015 · 1 min · Me

M+字体安装

今天微信推了一篇文章,是讲一个叫M+的开源字体,貌似MBPR上表现还不错。 那么如何安装M+字体呢? 正好老高还没有在OSX下安装过字体,结果发现,原来安装个字体和在win下是一样一样的。。。 项目地址 http://sourceforge.jp/projects/mplus-fonts/ ...

January 6, 2015 · 1 min · Me

模拟登录联通10010.com查询宽带余额

家里的宽带是包年按天扣费,时间长了就忘了改什么时候续费了。 抽时间写了个模拟登录10010.com的脚本,自动查询余额。 每天中午12点查一次,省得下次又欠费了。 模拟登录的过程很简单,获取查询的cookie需要两步请求,拿到cookie后可以随意查询。 有TX想看源码么? 已贴源码 #!/usr/bin/env python # encoding: utf-8 """ @version: 0.2 @author: phpergao @license: Apache Licence @contact: endoffight@gmail.com @site: http://www.phpgao.com @software: PyCharm @file: 10010.py @time: 15-1-3 下午6:06 一键查询联通宽带余额 """ import urllib2 import cookielib import json class Crawl(): def __init__(self, username, passwd, debug=False): (self.username, self.passwd) = (username, passwd) self.cookie = cookielib.CookieJar() cookieHandler = urllib2.HTTPCookieProcessor(self.cookie) self.is_debug = debug if self.is_debug: httpHandler = urllib2.HTTPHandler(debuglevel=1) httpsHandler = urllib2.HTTPSHandler(debuglevel=1) opener = urllib2.build_opener(cookieHandler, httpHandler, httpsHandler) else: opener = urllib2....

January 6, 2015 · 2 min · Me

使用net_speeder加速你的VPS

转自:http://www.im1987.com/post/853.html 老高安装了以后480P是不卡了,720P还是有点力不从心啊~ 另外推荐一下锐速,应该还是会有一点效果的。 ...

January 5, 2015 · 2 min · Me

python接受命令选项-h

python在用命令行的时候能够接受很多参数,到底是如何接受那些参数和选项呢? import sys, getopt opts, args = getopt.getopt(sys.argv[1:], "hi:o:") input_file="" output_file="" for op, value in opts: if op == "-i": input_file = value elif op == "-o": output_file = value elif op == "-h": usage() sys.exit()

January 5, 2015 · 1 min · Me