Vince's Blog

Treat the world kindly and light up the night.

  • 首页
  • 关于
  • 标签
  • 分类
  • 归档

Python + selenium 爬取选股宝首页新闻

发表于 2019-01-12 | 阅读次数:

利用Python + Selenium 爬取选股宝首页新闻及利好,利空消息.

直接附上源码:

阅读全文 »

通过asyncio+aiohttp实现异步请求

发表于 2019-01-06 | 阅读次数:

asyncio+aiohttp示例

通过python自带的包asyncio可以实现异步io, 但是由于asyncio只支持TCP请求, 不支持HTTP请求, 所以我们需要对请求进行封装. 调用第三方包aiohttp可以很方便的实现封装.

直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/1/6 18:16
# @Author : Vince
# @Site : https://zws910.github.io


import aiohttp
import asyncio


@asyncio.coroutine
def fetch_aync(url):
print(url)
# response = yield from aiohttp.request('GET', url)
response = yield from aiohttp.ClientSession().get(url)
print(url, response)
response.close()


tasks = [
fetch_aync('http://www.baidu.com'),
fetch_aync('http://www.google.com'),
]

event_loop = asyncio.get_event_loop()
results = event_loop.run_until_complete(asyncio.gather(*tasks))
event_loop.close()
阅读全文 »

python列表查询、冒泡排序、快速排序、堆排序

发表于 2019-01-03 | 更新于 2019-01-06 | 阅读次数:

列表查询:

1
2
3
4
5
6
7
8
9
10
11
12
def bin_search(data_set, val):
low = 0
high = len(data_set) - 1
while low <= high:
mid = (low + high) // 2
if data_set[mid] == val:
return mid
elif data_set[mid] < val: # val在右边
low = mid + 1
else: # val在左边
high = mid - 1
return # 没找到

冒泡排序:

1
2
3
4
5
6
7
8
9
10
def bubble_sort(li):
for i in range(len(li) - 1):
exchange = False
for j in range(len(li) - i - 1):
# 升序排列
if li[j] > li[j + 1]:
li[j], li[j + 1] = li[j + 1], li[j]
exchange = True
if not exchange:
break
阅读全文 »

个人项目展示 / Projects

发表于 2019-01-02 | 阅读次数:

基于node.js + Express + mongoDB的博客系统

github: https://github.com/zws910/nodejs_projects/tree/master/nodejs-demo

nodejs

Ubuntu 16.04 安装MongoDB

发表于 2018-12-30 | 阅读次数:

之前ubuntu 16.04上安装的MongoDB出现了问题, 这里记录一下重新安装的过程.

卸载MongoDB

1
sudo apt-get --purge remove mongodb mongodb-clients mongodb-server

通过apt-get安装

1. 添加mongodb签名到APT

1
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
阅读全文 »

redis事务及持久化 / Redis Transaction

发表于 2018-10-21 | 阅读次数:

简单事务控制

  • redis是单线程处理所有client的请求
  • multi当前client连接进入一个事务上下文, 该连接后续的命令不会立即执行, 而是放到队列(Queue)中, 直到接收到exec指令后才会按顺序执行
1
2
3
4
5
6
7
8
9
10
11
12
redis 127.0.0.1:6379> multi
OK
redis 127.0.0.1:6379> set age 10
QUEUED
redis 127.0.0.1:6379> set age 20
QUEUED
redis 127.0.0.1:6379> exec
1) OK
2) OK
redis 127.0.0.1:6379> get age
"20"
redis 127.0.0.1:6379>
  • 使用discard命令取消事务, 使其回滚
  • watch命令可以监视键值对, 当exec提交时如果被监视的键值对发生变化, 事务将被取消

复杂事务控制 - 乐观锁

阅读全文 »

Pycharm的git/github配置问题解决办法 Could not read from remote repository.

发表于 2018-08-16 | 更新于 2019-01-02 | 阅读次数:

‘Remote URL test failed: Could not read from remote repository.’ Pycharm的git/github配置问题解决办法

在Pycharm中做版本控制的时候, 如果添加了SSH, 那么本地执行VCS –> Git –> Remotes添加远程管理项目时会报错: Remote URL test failed: Could not read from remote repository.

解决方法如下:

阅读全文 »

简析Flask上下文 / Context in Flask

发表于 2018-08-09 | 更新于 2018-08-16 | 阅读次数:

Flask中的上下文是比较难以理解的一个点, 参考了大佬们的文章, 这里记录一下自己的理解, 仅供抛砖引玉.

何为上下文?

  • 上下文相当于一个容器, 保存了Flask程序运行过程中的一些信息. 如请求地址, Cookie等.
  • Flask中有两种上下文: 请求上下文(request context) 和 应用上下文(application context)
  • 应用上下文的生命周期依赖于请求的生命周期.

请求上下文(Request context)

请求上下文对象有:request、session

request

在 flask 中,可以直接在视图函数中使用 request 这个对象进行获取相关数据,而 request 就是请求上下文的对象,保存了当前本次请求的相关数据.

阅读全文 »

关于python中datetime模块的用法

发表于 2018-07-22 | 阅读次数:

datetime模块

datetime模块属于Python标准库,用来处理时间和日期。

官方文档: https://docs.python.org/3.6/library/datetime.html

先看一个练习题:

有一类文件,文件名为 output_1981.10.21.txt 这种格式。
要求使用Python 读取文件名中的日期时间信息,并找出这一天是星期几,并将文件改名为output_YYYY-MM-DD-W.txt
W:星期几(1-7), 星期一对应’1’, 星期天对应’7’

阅读全文 »

mini-Web业务逻辑及其实现 / Business Logic for mini-web Frame

发表于 2018-07-20 | 阅读次数:

mini-Web业务逻辑及其实现

为什么需要WSGI?

当服务器收到浏览器请求后, 需要判断请求的是静态资源还是动态资源。如果是静态,则直接返回静态页面给浏览器;如果是动态,则需要处理数据后返回给浏览器。由于要保证服务器长期稳定运行,通常处理数据的这部分功能需要独立出来,因此会用到应用程序框架。

另外,为了不同web服务器和不同web框架之间的通配性以及可移植性,因此需要遵循WSGI(Web Server Gateway Interface,服务器网关接口)。 WSGI没有官方的实现,因为WSGI更像一个协议,遵循该协议的WSGI应用都可以在任何服务器上运行。

阅读全文 »
12
Vincent Zheng

Vincent Zheng

13 日志
11 标签
© 2019 Vincent Zheng
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Muse v6.3.0
0%