
python
NealHuiwen
爱好唱、跳、rap、篮球
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python操作Redis
redis是一个基于内存的高效的键值型非关系数据库,接下来我们就来看看这些操作是如何具体使用的吧数据库连接操作from redis import StrictRedis #数据库连接方式 因为就算我自己使用的,所有没有设置密码redis=StrictRedis(host='localhost',port=6379,db=0,password=None)#redis.set('age',20)print(redis.get('name')) print(redis.exists('na转载 2020-12-25 10:28:15 · 604 阅读 · 1 评论 -
Python MySQL数据库连接池组件封装
以前一直在用Java来开发,数据库连接池等都是有组件封装好的,直接使用即可,最近在尝试Python的学习,碰到了和数据库打交道的问题,和数据库打交道我们都知道,数据库连接池必不可少,不然要么就是程序异常不稳定,要么就是数据库莫名其妙挂了,本篇博客主要是对数据库操作的简单封装,相当于一个DBHelper操作类组件Python中的数据库连接操作所需组件pymysql:mysql的Python连接包DBUtils:连接池组件configparser:配置文件模块mysql-connector-转载 2020-12-15 18:29:49 · 729 阅读 · 0 评论 -
Python数据抓取——多线程,异步
本文主要是为了加快数据抓取任务,考虑使用多进程、多线程、异步原理,相关概念可以参考https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868322563729e03f6905ea94f0195528e3647887415000操作系统可以同时运行多个任务。首先,考虑单核CPU是如何执行多任务的:操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01.转载 2020-08-12 17:35:03 · 326 阅读 · 0 评论 -
用GREQUESTS实现并发HTTP请求
起因要用http请求探测服务的有效性,多进程,多线程,感觉似乎没有必要,看看有没有协程的方案1. 简单用法grequests 利用 requests和gevent库,做了一个简单封装,使用起来非常方便import grequestsimport timeimport requestsurls = [ 'https://docs.python.org/2.7/library/index.html', 'https://docs.python.org/2.7/librar转载 2020-08-12 17:32:08 · 639 阅读 · 1 评论 -
Python爬虫的N种姿势,异步,并发,scrapy效率比较
问题的由来 前几天,在微信公众号(Python爬虫及算法)上有个人问了笔者一个问题,如何利用爬虫来实现如下的需求,需要爬取的网页如下(网址为:https://www.wikidata.org/w/index.php?title=Special:WhatLinksHere/Q5&limit=500&from=0): 我们的需求为爬取红色框框内的名人(有500条记录,图片只展示了一部分)的 名字以及其介绍,关于其介绍,点击该名人的名字即可,如下图:这就意味着我们需要爬取5转载 2020-08-12 17:29:32 · 2937 阅读 · 4 评论 -
深入了解生产消费者模型中task_done()具体作用
直奔主题tase_done()的作用:只有消费者把队列所有的数据处理完毕,queue.join()才会停止阻塞代码解释# -*- coding: utf-8 -*-# 关于tase_done()的作用:只有消费者把队列所有的数据处理完毕,queue.join()才会停止阻塞import timefrom queue import Queuefrom threading import Threadq = Queue()def produce(): for i in ra转载 2020-07-23 23:56:38 · 1158 阅读 · 1 评论 -
JS逆向——破解百度翻译参数(sign)爬虫 超级详细
一、分析请求参数打开地址:https://fanyi.baidu.com/打开Chrome调试工具,然后随意输入一段文字,查看抓包结果。post请求 Form data 参数 如上图所示,Form Date中只有两项是会变化的:query:我们要翻译的内容 sign:本文的BOSS出现了,一串意义不明的浮点数值。token是不变的,先给查找出来,全局搜索 全局搜索发现 token 的值 token:13508e550366f3004701d561721e12bd转载 2020-07-08 14:51:05 · 7798 阅读 · 2 评论 -
python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, "Incorrect string value: '\\xD6\\...' for column ...
问题描述在插入数据的时候抛出以下异常:Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 484")result = self._query(query)相关代码from sqlalchemy import ...原创 2020-04-05 03:02:30 · 949 阅读 · 1 评论 -
关于ORM,以及Python中SQLAlchemy的sessionmaker,scoped_session
orm(object relational mapping):对象关系映射。python面向对象,而数据库是关系型。orm是将数据库关系映射为Python中的对象,不用直接写SQL。缺点是性能略差。通过sessionmaker,我们得到一个类,一个能产生session的工厂。我们可以用这个类的对象来操作数据库。example:from sqlalchemy i...原创 2020-04-05 02:15:24 · 621 阅读 · 0 评论 -
python函数传参是传值还是传引用?
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。 值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参...原创 2020-04-03 15:48:52 · 194 阅读 · 0 评论 -
scrapy 中 COOKIES_ENABLED 设置
当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie当COOKIES_ENABLED没有注释设置为False的时候scrapy默认使用了settings里面的cookie当COOKIES_ENABLED设置为True的时候scrapy就会把settings的cookie关掉,使用自定义cookie也就是如果使用自定义cookie就把COOKIES_ENA...转载 2020-04-02 23:18:10 · 7065 阅读 · 4 评论 -
python实现并发爬虫
阅读目录一.顺序抓取 二.多线程抓取 三.gevent并发抓取 四.基于tornado的coroutine并发抓取在进行单个爬虫抓取的时候,我们不可能按照一次抓取一个url的方式进行网页抓取,这样效率低,也浪费了cpu的资源。目前python上面进行并发抓取的实现方式主要有以下几种:进程,线程,协程。进程不在的讨论范围之内,一般来说,进程是用来开启多个spider,比如我们开启了4进程...原创 2020-03-02 13:31:53 · 944 阅读 · 0 评论 -
Redprint红图实现
先把蓝图注册到app上面,在传进去蓝图包的模块名作为参数穿进去因为蓝图实例写在**init模块上面,所以是一个是传包名v1**#在app注册蓝图对象def registe_blueprint(app): from app.api.v1 import create_blueprint_v1 app.register_blueprint(create_blueprint_v1...原创 2020-01-20 09:19:45 · 360 阅读 · 0 评论 -
python定时任务框架APScheduler
APScheduler简介在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站的程序等等,都涉及到了关于定时任务的问题,第一时间想到的是利用time模块的time.sleep()方法使程序休眠来达到定时任务的目的,虽然这样也可以,但是总觉得不是那么的专业,^_^所以就找到了python的定时任务模块APScheduler...原创 2019-12-16 18:33:35 · 167 阅读 · 0 评论 -
Python __call__ 用法 作用
当一个对象为可被调用对象时,callable(object)返回为True,否则为False:Python中的对象有可被调用和不可被调用之分。def func_test(): print("func_test run") class class_test(): def __init__(self): pass # func_test is call...转载 2019-11-25 16:56:39 · 337 阅读 · 0 评论 -
Flask 创建app 时候传入的 static_folder 和 static_url_path参数理解
Flask 在创建app的时候是用app = Flask(__name__)来创建的,不传入 static_folder参数的话 ,默认的静态文件的位置是在 static目录下我们可以进入 Flask的源码里面查看 ctrl+鼠标左键进入这是Flask的 __init__源码(后面还有一些,我就选了需要的代码) def __init__( s...转载 2019-11-19 15:46:26 · 1104 阅读 · 0 评论 -
表单验证(WTF)
官方文档在Flask项目开发中针对提交表单的校验,可以使用Flask-WTF扩展库进行快速的字段校验,也可以进行页面快速渲染,并提供跨站请求伪造的保护功能。安装Flask-WTFpip install flask-wtf实现注册功能注册表单模型定义在定义的表单类中定义需要验证的username、password和password2字段,并实现如下校验:校验密码pass...转载 2019-11-14 14:45:14 · 625 阅读 · 0 评论