分类目录归档:python

Django+nginx+gunicorn部署网站


写在前面

试过了apache2,uwsgi,这次尝试下gunicorn,本文权当学习笔记。

安装

sudo apt-get install nginx
sudo apt-get install python3
sudo apt-get install python3-pip
sudo pip3 install virtualenv

虚拟环境

#创建
python3 -m virtualenv venv
#启动
source venv/bin/activate

安装python包

pip3 install -Ur requirements.txt

收集静态资源

#注意在settings.p

Read more

python3中ctypes的简单使用


写在前面

闲来无事,学习一下使用python调用动态链接库,就用到了ctypes库。

使用方法

#调用ctypes中的各类方法
from ctypes import cdll,CDLL,WinDLL,windll
#调用platform获取当前操作系统
import platform

if platform.system() == 'Windows':
    #windows下调用的是msvcrt.dll文件
    libc = cdll.LoadLibrary('msvcrt.dll')
elif platform.system() == 'Li

Read more

selenium模拟登录QQ邮箱


写在前面

本来想利用自动化测试实现跳过猫眼验证中心,自动拖动滑块验证的功能是实现了,但猫眼还有别的检测方法来判断用户行为,所以这条路没有走通,在这里记录下QQ邮箱的自动登录。

用到的包

#用于sleep
import time
#selenium自动化框架
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains

配置options

#后面两行可以无界面

Read more

破解猫眼字体反爬


写在前面

本项目很久之前就想尝试,觉得难,所以一直在拖,这次终于有时间搞了一下。猫眼的反爬虫策略还是比较强大的,会判断用户行为,如果在一段时间内频繁访问会使ip被暂时屏蔽,这个问题可以使用IP代理来解决。此外还使用了字体反爬来保护票房、票价等重要信息,而且这个字体反爬在不断更新,最初的时候使用单一的字体文件,后来升级到每次刷新网页都会更新字体文件,而且字体文件中的坐标并不一致,这让爬取变的更加困难,但是相同数字之间总有相似的地方,通过聚类思想我们仍然可以找到映射关系,这种方法不保证不会出错,因为真实的映射关系只有猫眼的程序猿那里有,我们只是使用算法进行推断,如果出现错误,可以尝试使用更精确的算

Read more

Python生成随机密码并操作剪贴板


用到的包

#操作字符串
import string
#从列表中获取随机元素
import random
#操作剪贴板,copy为向剪贴板传递,paste为从剪贴板读取
from pyperclip import copy,paste

生成密码

#生成密文列表
alnums = [x for x in string.ascii_letters + string.digits if x not in ('0', 'o', '1', 'l')]
#产生随机密码,可以根据需要修改传递的参数n
def genpass(n=16):
   

Read more

Python爬取城市天气信息


摘要

本次尝试爬取高德地图中全国部分城市天气信息,程序主要是对json字符串进行操作,如果有天气方面的数据分析需求,可以把代码稍作修改,放到服务器上定时跑一个月,就可以得到数量相当可观的数据。

用到的包

#网页请求
import requests
#操作json字符串,在本文中可用可不用
import json
#用于使程序暂停数秒
import time

全局变量

#城市及对应的adcode保存在该url指向的json文本中,在高德地图官网审查元素可以找到该url
url_city = 'https://www.amap.com/service/cityList?version=2

Read more

Python绘制蒙太奇图片(opencv)


写在前面

原理其实很简单,把目标图像划分成许多区域,然后从给定的图库里寻找一张和本区域最相似的图片,将找到的图片贴到对应区域上,重复这一过程,然后就得到了目标图片。

本文所用素材来自lol官方网站,详情参阅爬取LOL英雄皮肤,批量爬取的代码会抽时间写进去。

用到的包

#OpenCV
import cv2
#操作文件夹
import os
#构造像素点矩阵
import numpy as np
#用于获取点图中出现频率最高的像素点
import collections

一个小问题

"""
OpenCV无法直接加载含有中文路径的图片,所以需要自定义一个方法
同样的,

Read more

python绘图之matplotlib


摘要

记录一些matplotlib绘图常用语法。谨防遗忘。

import matplotlib.pyplot as plt
#更改绘图风格
plt.style.use('seaborn-whitegrid')
import numpy as np

#创建图形对象
fig = plt.figure()
#创建坐标轴对象
ax = plt.axes()

#生成numpy数组
x = np.linspace(0,10,1000)

#分别绘制正弦、余弦函数图像
plt.plot(x,np.cos(x))
plt.plot(x,np.sin(x))
#也可以操作坐标轴绘图,跟上面作

Read more

python中json模块的使用


写在前面

从9月26号因病住院,到10月19号暂时出院,这期间一直没有机会写博客,在园区的时候也总忍不住玩游戏,必须要做些什么才行,就慢慢的回到学习的状态吧。

Json模块

该模块为python3.x自带模块,无需使用pin install命令进行安装。 使用方式: import json

json.loads()

#input
import json
a = "[1,2,3,4]"
b = '{"k1":1,"k2":2}'
print(json.loads(a))
print(type(json.loads(a))

Read more

记一次多线程的使用


写在前面

同事老哥想让我把一个网站上所有的pdf资料爬下来,但实在是太多了,可能会对网站造成破坏,所以想了个折中的方式,把所有书的下载链接爬取下来。为了提升效率,简单的用了一下多线程。

用到的包

#请求网页
import requests
#操作excel
import openpyxl
#调用多线程
import threading
#解析网页
from bs4 import BeautifulSoup as bs

全局变量

#目标地址,一共有863页
urls = ['http://www.allitebooks.org/page/{}/'.format(i) for i

Read more