![](https://img-blog.csdnimg.cn/20200706111726273.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
python
python相关记录
CrazyDemo
这个作者很懒,什么都没留下…
展开
-
python 目录
目录python(列表,字典,元组,集合) 列表——创建、增、删、改、差、效率 字典——创建、增、删、改、查 元组——创建、删、查 集合——创建、增、删、(并、交、差、反差、子、超)集 python文件操作 文件读取 文件写入 文件追加 其他操作——tell、seek、flush 去掉空白行 python函数 *args和**kwargs 形参顺序 命名空间——执行顺序,取值顺序 当参数为可变类型的坑 global和nonlocal原创 2020-08-17 20:58:17 · 472 阅读 · 0 评论 -
爬虫 分布式和增量式
分布式需要搭建一个分布式的机群,在机群的每一台电脑中执行同一组程序,让其对某一个网站的数据进行联合分布爬取。原生的scrapy不能实现分布式的原因因为调度器不可以被共享管道不可以被共享如何实现分布式scrapy+scrapy_redis实现分布式scrapy_redis组件作用可以提供可被共享的调度器和管道特性:数据只可以存储到redis数据库分布式的实现流程pip instal scrapy-redis创建工程cd到工程目录创建爬虫文件(a.创建原创 2020-08-17 10:54:44 · 234 阅读 · 0 评论 -
CrawlSpider全站数据爬取
CrawlSpider基于scrapy进行全站数据抓取的一种技术手段CraulSpider就是spider的一个子类连接提取器:LinkExtracotr规则解析器:Rule使用流程:新建一个工程cd 工程中新建一个爬虫文件:scrapy genspider -t crawl spiderName www.xxx.com...原创 2020-08-17 10:02:54 · 526 阅读 · 0 评论 -
Scrapy框架 五大核心组件和中间件
五大核心组件工作流程引擎(Scrapy)用来处理整个系统的数据流处理,触发事物(框架核心)调度器(Scheduler)用来接收引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回下载器(Downloader)用于下载网页内容,并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)爬虫(Spiders)爬虫主要干活的,用于从特定的网页中提取自己需要的信息,即所谓的实体(item),用户也可从中提取链接,让Scrapy继续抓取下一个页面项目管道(Pipe原创 2020-08-16 21:57:09 · 725 阅读 · 0 评论 -
Scrapy框架
Scrapyscrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。scrapy集成好的功能:高性能的数据解析操作(xpath)高性能的数据下载高性能的持久化存储中间件全栈数据爬取操作分布式:redis请求传参的机制(深度爬取)scrapy中合理的应用selenium环境安装pip install wheel下载twisted,对应python版本 地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twi原创 2020-08-16 15:24:18 · 207 阅读 · 0 评论 -
Fiddler 抓包工具
Fiddlerfiddler是一款抓包工具:其实就是一个代理服务器配置:让其可以抓取https协议的请求tools > options > HTTPS > Decrypt HTTPS staffic > yes手机连接配置tools > options > Connections > Allow remote computers to connect将手机和fiddler所在的电脑处于同一个网段下在手机中访问fiddler的ip和端口号- 电原创 2020-08-13 21:54:20 · 133 阅读 · 0 评论 -
python爬虫 aiohttp实现并发和selenium模块
利用单线程+多任务协程协程 如果一个函数的定义被asyic修饰后,则该函数调用后会返回一个协程对象 任务对象: 就是对协程对象的进一步封装 绑定回调 -task.add_done_callback(func);func(task);task.result() 事件循环对象 时间循环对象是用来装载任务对象。该对象被启动后,则会异步的处理调用其内部装载的每一个任务对象,(将任务对象手动进行挂起操作) -aynic,await 注意事项:在特殊函数内部不可以出现不支持异步模.原创 2020-08-13 20:22:11 · 1009 阅读 · 0 评论 -
python爬虫 代理、cookie的处理和模拟登陆
代理代理服务器,可以接受请求然后将其转发。匿名度高匿:啥也不知道匿名:知道你使用了代理,但是不知道你的真实ip透明:知道你使用了代理并且知道你的真实ip类型httphttps免费代理www.goubanjia.com快代理西祠代理https://www.zhiliandaili.cn/headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KH原创 2020-08-12 22:28:52 · 1598 阅读 · 0 评论 -
python 爬虫数据解析
ip代理被封了加代理http://www.goubanjia.com/数据解析数据解析可以帮助我们实现聚焦爬虫数据解析的实现方式正则:爬取快,但正则写起来慢bs4xpath:通用性比较强pyquery数据解析的通用原理爬取的数据都被存储在相关标签之中和相应的标签属性中定位标签取文本或者属性值...原创 2020-08-12 10:57:16 · 296 阅读 · 0 评论 -
python 爬虫初识
Anaconda 是一个集成环境(基于机器学习和数据分析的开发环境)基于浏览器的一种可视化开发工具:jupyter notebook可以在指定目录的终端中录入jupyter notebook指令,然后启动服务cell是分为不同模式的:Code:编写python代码markDown:编写笔记快捷键:添加cell:a,b删除cell:x执行:shift+enter切换cell模式:my打开帮助文档:shift+tab...原创 2020-08-11 15:26:55 · 342 阅读 · 0 评论 -
python pymysql操作mysql
连接数据库conn = pymysql.connect(host='127.0.0.1', user='root', password='root', database='demo')cur = conn.cursor() # 游标# cur = conn.cursor(cursor=pymysql.cursors.DictCursor) # 获取字典形式数据#cur.rowcount() # 获取查出多少行,便于fetchone()取所有数据cur.execute("selec原创 2020-07-07 17:16:48 · 183 阅读 · 0 评论 -
python闭包、匿名函数和内置函数
闭包闭包只存在于镶嵌函数中 内层函数对外层函数非全局变量的引用(使用),就会形成闭包 被引用的非全局变量也称为自由变量,这个自由变量会和内层函数产生一个绑定关系 自由变量不会在内存中消失 闭包函数保证数据的安全def make_averager(): l1 = [] def averager(new_value): l1.append(new_value) print(l1) total = sum(l1) re原创 2020-06-23 14:39:28 · 182 阅读 · 0 评论 -
python return注意事项
不可变数据类型返回值不可变数据类型方法会有返回值,因为原始数据不能修改,只能形成一个新的值DATA = 100def func(): DATA = 1000 func4 = lambda a1: a1 + DATA v = func4(1) print(v) # 1001func()可变数据类型返回值可变数据类型方法【基本】不会形成新的数据,只会在原始数据上修改,故这些方法只有默认None返回值info = []def func.原创 2020-06-23 14:46:11 · 216 阅读 · 0 评论 -
python(列表,字典,元组,集合)
一.列表 1.创建# 列表的创建 # 方式一 l1 = [1, 2, 'Alex'] # 方式二 l1 = list() l1 = list('fhdsjkafsdafhsdfhsdaf') print(l1) 2.增l1 = ['太白', '女神', 'xiao','吴老师', '闫龙'] # 增: # append:追加 l1.append('xx') print(l1)# insert 插入 l1.insert(2,'wusir') prin...原创 2020-06-23 14:37:48 · 126 阅读 · 0 评论 -
python 软件开发目录规范
常见结构blog bin start.py -------------》启动文件,一般run() conf settings.py -------------》配置文件,静态参数 如路径、数据库配置 core src.py -------------》程序主逻辑代码 db register -------------》文本数据库 lib common...原创 2020-06-23 14:44:48 · 235 阅读 · 0 评论 -
python文件操作
文件读取# mode有r, rb, r+, r+b 四种模式# encode 根据文件编码来定 # 句柄有read(), read(n), readline(), readlines() 操作模式f1 = open("xxx.txt", mode="r", encode="utf-8")f1.read()f1.close()with open("xxx.txt") as f1: f1.read()...原创 2020-06-23 14:38:12 · 126 阅读 · 0 评论 -
python函数
*args和**kwargs# *代表聚合,他将所有位置参数聚合成一个元组,赋值给args# **将所有‘关键字’参数聚合到一个字典中,将这个字典赋值给kwargsdef func(*args, **kwargs): print(*args) print(**kwargs)func(*[1,2,3], *[4,5,6]) # 等同于 func(1,2,3,4,5,6)func(**{'name': 'alex'},**{'age':100}) #原创 2020-06-23 14:38:43 · 111 阅读 · 0 评论 -
python 装饰器
装饰器在不改变原函数代码和调用方式下,为其添加额外的功能 开放封闭原则 装饰器的本质是闭包标准版装饰器def timer(f): def inner(*args, **kwargs): '''执行函数之前要做的''' re = f(*args, **kwargs) '''执行函数之后要做的''' return re return inner@timer # 这是语法糖,相当于下面的 func .原创 2020-06-23 14:39:04 · 101 阅读 · 0 评论 -
python 常用模块
collections namedtuple # 使用可以用名字来访问元素内容的tuplefrom collections import namedtuplePoint = namedtuple("Point", ['x', 'y'])p = Point(1, 2)print(p.x, p.y) # 坐标使用比较多 deque # 由于列表是线性结构导致插入和删除元素很慢,deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈from原创 2020-06-23 14:39:42 · 183 阅读 · 0 评论 -
python迭代器和生成器
可迭代对象可以更新迭代实实在在的值 内部含有'__iter__'方法 优点:操作方法多,操作灵活,直观 缺点:占用内存迭代器可以更新迭代的一个工具 内部含有'__iter__'且含有'__next__'方法 优点:节省内存,惰性机制 缺点:不直观,操作慢,操作方法单一,不走回头路生成器python社区,生成器与迭代器看成是一种。生成器的本质就是迭代器。唯一的区别:生成器是我们自己用python代码构建的数据结构。迭代器都是提供的,或者转化得来的。 获取生成器的三种方..原创 2020-06-23 14:45:11 · 221 阅读 · 0 评论 -
python 面向对象
__init__ 和 self__init__做初始化,当__init__() 执行完后会返回一个对象,这个对象类似一个字典,绑定方法和属性 self 在实例化时,自动将对象/实例本身传给__init__ 进行绑定,self指向创建实例本身继承python分为单继承和多继承 所有类都继承object类 单继承在调用方法时,自己有用自己,没有就往上找 在python3中都是新式类,但是在python2中继承object为新式类,不写object为经典类 ...原创 2020-06-29 09:58:35 · 227 阅读 · 0 评论 -
python 网络编程
网络基础mac地址:不会改变的,不会重复的,每个电脑出厂网卡上的序列。能够唯一标识你的机器 ip地址:会改变。能够更好更方便的找到你的机器 ipv4:四位点分十进制 192.168.0.0 8位的二进制 范围0.0.0.0到255.255.255.255 公网地址:需要自己申请购买的地址 内网地址:保留字段,永不和公网冲突 192.168.0.0——192.168.255.255 172.16.0.0——172.31.255.255 10.0.0.0——1...原创 2020-07-01 17:58:53 · 194 阅读 · 1 评论 -
python 并发编程
操作系统的历史多道操作系统 当遇到IO操作时候就切换 提高cpu的利用率 进程之间数据隔离 时空复用:在同一个时间点上,多个程序同时执行着,一块内存上存储了多少进程的数据 时间分片 时间片轮转 进程是计算机最小的资源分配单位:每一个程序在运行起来的时候需要分配一些内存 一个运行的程序 在操作系统中用pid来标识一个进程 进程的调度算法 先来先服务:先来先调度 短作业优先:短作业或短进程优先 时间片论法:每个进程就绪时间和享受时间成比例。在规定时间片内为.原创 2020-07-05 10:53:18 · 178 阅读 · 0 评论 -
python 数据结构
数据结构数据存储形式 python 字典{} key-value 列表[] 序列 元组() 集合{1,} 字符串 其他数据结构 Queue队列:先进先出FIFO(FIRST IN FIRST OUT) Stack栈:后进先出LIFO(LAST IN FIRST OUT) ...原创 2020-07-04 11:12:37 · 117 阅读 · 0 评论