省市县区域名称与邮编JSON
Python获取Cookie、设置Cookie的N种方法
方法一通过python的requests包:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
import requests url = "https://fanyi.baidu.com" res = requests.get(url) ck = res.cookies print(ck) print(type(ck)) print(ck.keys()) # 获取cookie中所有键名,以list格式输出 print(ck.items()) # 输出 <RequestsCookieJar[<Cookie BAIDUID=3A6AD66348038CBCB3BB6927F4A2CD77:FG=1 for .baidu.com/>, <Cookie locale=zh for .baidu.com/>]> <class 'requests.cookies.RequestsCookieJar'> ['BAIDUID', 'locale'] [('BAIDUID', '3A6AD66348038CBCB3BB6927F4A2CD77:FG=1'), ('locale', 'zh')] |
获取cookies是通过response的cookies 属性,可以通过res.cookies["cookie_name"]的方式获取。
并且需要注意的是,这个是一个RequestCookieJar的实例,也就是说,在requests的操作里的cookie一般都是包装到了 Continue reading
[Python] – 爬虫之lxml库的用法
[Python] – 爬虫之lxml库的用法
HTML 示例代码
0 1 2 3 4 5 6 7 8 9 10 |
text = ''' <div> <ul> <li class="item-0"><a href="link1.html">first item</a></li> <li class="item-1"><a href="link2.html">second item</a></li> <li class="item-inactive"><a href="link3.html">third item</a></li> <li class="item-1"><a href="link4.html">fourth item</a></li> <li class="item-0"><a href="link5.html">fifth item</a> </ul> </div> ''' |
小试牛刀 Continue reading
python2 UnicodeDecodeError: ‘utf8′ codec can’t decode byte 0xbc in position 0: invalid start byte
python2报错 UnicodeDecodeError: ‘utf8′ codec can’t decode byte 0xbc in position 0: invalid start byte
这不是编码问题,是网址有压缩,下面是py2的写法
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import urllib2, StringIO, gzip s = urllib2.urlopen('http://mrdede.com/') h = s.read() #print h compressedstream = StringIO.StringIO(h) gzipper = gzip.GzipFile(fileobj=compressedstream) data = gzipper.read() print data |
获取redis库中所有键值对
python获取所有数据,获取redis库中所有键值对
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import redis pool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=0) r = redis.Redis(connection_pool=pool) len = 0 key_list = [] print r.pipeline() keys = r.keys() for key in keys: key_list.append(key) pipe.get(key) if len < pipe_size: len += 1 else: for (k, v) in zip(key_list, pipe.execute()): print k, v len = 0 key_list = [] for (k, v) in zip(key_list, pipe.execute()): print k, v |
Python Redis pipeline操作
Redis是建立在TCP协议基础上的CS架构,客户端client对redis server采取请求响应的方式交互。
一般来说客户端从提交请求到得到服务器相应,需要传送两个tcp报文。
设想这样的一个场景,你要批量的执行一系列redis命令,例如执行100次get key,这时你要向redis请求100次+获取响应100次。如果能一次性将100个请求提交给redis server,执行完成之后批量的获取相应,只需要向redis请求1次,然后批量执行完命令,一次性结果,性能是不是会好很多呢?
答案是肯定的,节约的时间是客户端client和服务器redis server之间往返网络延迟的时间。这个时间可以用ping命令查看。
网络延迟高:批量执行,性能提升明显
网络延迟低(本机):批量执行,性能提升不明显
某些客户端(java和python)提供了一种叫做pipeline的编程模式用来解决批量提交请求的方式。
这里我们用python客户端来举例说明一下。 Continue reading
python连接redis操作数据
1、python连接redis操作数据
0 1 2 3 4 5 6 7 8 9 |
#!/usr/bin/env python # -*- coding:utf8 -*- import redis r = redis.Redis(host='localhost', port=6379, db=0) r.set('foo', 'Bar') print (r.get('foo')) # 输出 Bar |
2、python连接redis操作线程池
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/usr/bin/env python # -*- coding:utf8 -*- import redis pool = redis.ConnectionPool(host='localhost', port=6379, db=0) r = redis.Redis(connection_pool=pool) pipe = r.pipeline() pipe_size = 100000 r.set('foo2', 'Bar2') print (r.get('foo2')) # 输出 Bar2 pipe = r.pipeline() pipe_size = 100000 |
3、decode_responses=True:这样写存的数据是字符串格式
0 1 2 |
import redis r = redis.Redis('127.0.0.1', 6379,decode_responses=True) |
4、获取库中所有键名
0 1 |
keys = r.keys() print(keys) |
下面详细介绍redis数据库的使用 Continue reading
windows下后台启动redis
windows下后台启动redis
打开命令行窗口
启动服务命令:redis-server --service-start
停止服务命令:redis-server --service-stop
启动指定的配置文件:redis-server --service-start redis.windows-service.conf
redis.exceptions.ConnectionError: Error 10061 connecting to localhost:6379.
python2,python3,pip安装redis后报错
redis.exceptions.ConnectionError: Error 10061 connecting to localhost:6379.
这是因为没有安装redis,redis安装方法>>
关于开发Google+以及Facebook第三方登录
简述
最近项目中有关于第三方授权登陆的需求,第三方Facebook以及Google +登录。
正好这几天把这个需求做得差不多了,收个尾,作为一个这方面之前基本从未涉及的小白,总结下开发流程以及过程中遇到的一些问题。希望能对大家有所帮助。
基本上,目前互联网上的涉及到第三方登录采用的都为OAuth认证方式,相关原理以及实现方法相关的可以网上搜索查看。不过涉及到Facebook以及Google +的登陆,最大的问题是这两个网站在墙外,想FQ找资料比较费劲,奈何国内这方面的资料也不是很齐全,翻到的官方的文档又全是英文的,阅读无能~
第三方登陆简单可以分为以下几个步骤,分别是:获得第三方登陆许可认证;根据规范添加页面登录样式和js实现,跳转到第三方登陆页面登陆并获取授权后,返回原指定页面(或请求);后台对登录信息进行校验,并获取对应第三方登陆用户的信息;将第三方用户信息与本系统用户进行关联。
下面就以上几个步骤的一些关键信息,或者说是我开发当中遇到的问题做一下简要的记录。因为Facebook以及Google +第三方登陆都采用的是Auth2技术,因此只会在具体实现不同的地方单独说明。理解有误的地方,或者是没有说全的地方,还请各位谅解~ Continue reading