- 博客(37)
- 收藏
- 关注
原创 爬虫总结
文章目录1. 爬虫流程2. requests 的使用2.1 基本使用2.2 保持会话2.3 设置UA,设置代理3. xpath提取数据3.1 xpath语法3.2 lxml模块的使用4. scray框架4.1 scrapy框架流程4.2 scrapy的基本使用4.3 管道4.4 中间件1.开启中间件2.中间件的两个方法3.中间件的功能4.5 post请求5. scrapy_redis5.1 如何去...
2018-12-25 20:56:53 822
原创 爬虫学习笔记 - scrapy_redis 框架
scrapy 实现生成指纹的方法默认使用sha1加密了请求方法,请求体,和请求url地址,得到16进制字符串fp = hashlib.sha1()fp.update(to_bytes(request.method))fp.update(to_bytes(canonicalize_url(request.url)))fp.update(request.body or b'')cache...
2018-12-24 15:57:32 318
原创 爬虫学习笔记 - scrapy 框架
文章目录scrapy 的数据传递的流程scrapy的项目流程scrapy如何构造请求scrapy的Item如何使用scrapy中parse函数是做什么的下载器中间件crwalspidercrwalspider如何创建爬虫crwalspdier中rules的编写crwalspider中不同的解析函数间如何传递数据,如果不能应该如何操作?下载器中间件如何使用模拟登陆的三种方式scrapy 的数据传递...
2018-12-24 15:54:10 411
原创 爬虫学习笔记 -mongodb 数据库
文章目录启动mongodb的客户端和服务端mongodb中数据库和集合的命令insert和save的区别update删除mongodb中数据库的方法mongodb中集合的方法mongodb的增删改查的方法字典排序命令练习比较运算符逻辑运算符范围运算符正则投影mongodb的分组$project的使用$skip $limit $sortmongodb 复习mongodb的运算符mongodb中的计数...
2018-12-24 15:45:35 730
原创 爬虫学习笔记 - selenium 模块学习
安装driverchromdriver 需要对应chrome版本提示权限不足,sudo chmod +x phantomjschromdriver --versionphantomjs --version定位元素的方法driver.find_element #返回第一个元素,如果没有报错driver.find_elements #返回包含元素的列表,如果没有返回空列表...
2018-12-24 15:37:09 253
原创 爬虫学习笔记 - 多任务
多线程爬虫threadingt1 = threading.Thread(targe=func,args=(,))t1.setDaemon(True)t1.start() #此时线程才会启动队列q.join() #阻塞主线程,让主线程等待队列任务结束之后在结束,队列任务在计数为0时技术q.task_done() 和get()方法配合,队列计数-1q.put() 队列计数+1...
2018-12-24 15:31:05 280
原创 爬虫学习笔记 - 数据解析
文章目录正则的语法re模块的常见方法xpath选取节点下面列出了最有用的表达式:xpath语法lxml模块的使用正则的语法. 匹配到除了 \n 之外的所有字符, re.S 模式下可以匹配 \n, re.DOTALL 可以让正则表达式中的点(.)匹配包括换行符在内的任意字符\ 转义[] 或,选择其中的一个内容| 或,选择 | 两边的内容* 匹配 0 次或者多次+...
2018-12-24 15:24:12 415
原创 Python 与位运算
文章目录位运算左移运算符(<<)规则语法格式:数学意义:右移运算符(>>)规则:语法格式:计算过程:数学意义:无符号右移运算符规则:python 代码与或非运算进制转换位运算& : 按位与运算,判断最后一位是否是 1,奇数为1,偶数为0,用来判断奇偶性^:异或运算,相同为 0,不同为 1%:取模,>> : 右移 N 位,相当于除以 2 的 ...
2018-12-24 15:21:33 1345
原创 Python 闭包和装饰器学习
装饰器def out_func(func): """ functools.wraps 可以将原函数对象的指定属性复制个包装函数对象 """ @functools.wraps(func) def inner_func(func, *args, **kwargs): return func() return inner_func @out_funcdef foo(): pr...
2018-12-24 14:49:27 454
原创 DRF 框架总结 - 自动生成接口文档
自动生成接口文档REST framework可以自动帮助我们生成接口文档。接口文档以网页的方式呈现。自动接口文档能生成的是继承自APIView及其子类的视图。1. 安装依赖REST framewrok生成接口文档需要coreapi库的支持。pip install coreapi2. 设置接口文档访问路径在总路由中添加接口文档路径。文档路由对应的视图配置为rest_frame...
2018-12-14 09:52:59 2019
原创 DRF 框架总结 - 异常处理 Exceptions
异常处理 ExceptionsREST framework提供了异常处理,我们可以自定义异常处理函数。from rest_framework.views import exception_handlerdef custom_exception_handler(exc, context): # 先调用REST framework默认的异常处理方法获得标准错误响应对象 resp...
2018-12-13 18:31:31 1012
原创 DRF 框架总结 - 版本 Versioning
版本VersioningREST framework提供了版本号的支持。在需要获取请求的版本号时,可以通过request.version来获取。默认版本功能未开启,request.version 返回None。开启版本支持功能,需要在配置文件中设置DEFAULT_VERSIONING_CLASSREST_FRAMEWORK = { 'DEFAULT_VERSIONING_CLAS...
2018-12-13 18:30:18 434
原创 DRF 框架总结 - 分页 Pagination
分页PaginationREST framework提供了分页的支持。我们可以在配置文件中设置全局的分页方式,如:REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 100 # 每页数目}也可通过自定...
2018-12-13 18:26:47 1227
原创 DRF 框架总结 - 限流 Throttling
限流Throttling可以对接口访问的频次进行限制,以减轻服务器压力。使用可以在配置文件中,使用DEFAULT_THROTTLE_CLASSES 和 DEFAULT_THROTTLE_RATES进行全局配置,REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ( 'rest_framework.throttling.An...
2018-12-13 18:25:08 889 1
原创 DFR 框架总结 - 权限 Permissions
权限Permissions权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。在执行视图的 dispatch() 方法前,会先进行视图访问权限的判断在通过 get_object() 获取具体对象时,会进行对象访问权限的判断使用可以在配置文件中设置默认的权限管理类,如REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': (...
2018-12-13 18:22:37 644
原创 DRF 框架总结 - 认证 Authentication
认证Authentication可以在配置文件中配置全局默认的认证方案REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.BasicAuthentication', # 基本认证 'rest_framework.authentica...
2018-12-13 18:21:05 418
原创 DRF 框架总结 - 视图集&路由 Routers
视图集 ViewSet使用视图集 ViewSet,可以将一系列逻辑相关的动作放到一个类中:list() 提供一组数据retrieve() 提供单个数据create() 创建数据update() 保存数据destroy() 删除数据ViewSet 视图集类不在实现 get(), post() 等方法,而是实现 action 如 list()、create()等。视图...
2018-12-13 18:18:19 331 4
原创 DRF 框架总结 - 视图说明
视图REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写在不同的类中封装了不同的属性,简化代码的书写量,# 视图继承层级# 第一层object# 第二层django.views.generic.base.View# 第三层rest_framework.views.APIView# 第四层rest_framework.mixins.List...
2018-12-13 18:10:55 418
原创 DRF 框架总结 - 视图(Request 与 Response)
Request 与 ResponseRequestREST framework 传入视图的 request 对象不再是 Django 默认的 HttpRequest 对象,而是 REST framework 提供的扩展了 HttpRequest 类的 Request 类的对象。REST framework 提供了 Parser 解析器,在接收到请求后会自动根据 Content-Type 指明...
2018-12-13 18:05:59 573
原创 DRF 框架总结 - serializer 序列化器
定义 serializer序列化使用反序列化使用模型类序列化器 ModelSerializer
2018-12-13 17:58:14 1538
原创 DRF 框架总结 - DRF 工程 搭建
环境安装与配置DRF 是以 Django 扩展应用的方式提供的,所以我们可以直接利用已有的 Django 环境而无需重新创建。(若没有 Django 环境,需要先创建环境安装 Django)安装DRFpip install djangorestframework添加rest_framework应用我们利用在Django框架学习中创建的demo工程,在settings.py的INSTAL...
2018-12-10 20:53:15 414
原创 python 面试题
复杂元素排序、使用列表实现栈和队列、给定两个 list A B,找出其中相同的元素,不同的元素、二维数组转一维、生成二维数组、找到指定范围内的质数的数量
2018-12-09 21:38:31 160
原创 DRF 框架总结 - 引入 Django REST framework 框架
引入 Django REST framework 框架Web 应用模式在开发 Web 应用中,有两种开发模式:前后端不分离前后端分离前后端不分离在前后端不分离的应用模式中,前端看到的效果都是有后端控制,由后端渲染页面或重定向,也就是后端需要 控制前端的展示,前端与后端的耦合度很高。这种应用模式比较适合纯网页应用,但是当后端对接 app 时, app 可能并不需要后端返回一个 H...
2018-12-07 20:18:44 444
原创 爬取煎蛋随手拍图
爬取煎蛋随手拍图使用 requests + selenium 来进行图片的爬取爬取结果爬取思路使用 selenium 发起请求对页面进行数据的提取取到页面上每个图片的 url使用 requests 发起请求将图片进行保存实现代码import osimport timeimport requestsfrom selenium import webdriver...
2018-12-06 21:42:49 572
原创 python 爬虫下载网易歌单歌曲
python 爬虫下载网易歌单歌曲可以根据歌单 id 来下载歌单中的所有音乐,付费音乐除外可以自己输入歌单 id 来进行单个歌单下载,也可以结合上一篇文章爬取网易云音乐所有歌单信息先取到所有的歌单信息,在进行所有歌单中的歌曲下载爬取思路判断是否输入歌单 id输入了 id拼接请求的歌单 url发送请求,取到当前歌单中的所有歌曲的信息遍历每个歌曲信息拼接下载歌曲的 u...
2018-12-04 21:15:22 669
原创 爬取网易云音乐所有歌单信息
使用 python + requests + lxml + selenium使用 requests 发起请求,获取到所有分类的 url使用 selenium 发送请求取到每页的每个歌单信息点击下一页,爬取下一页的歌单信息存储信息import requests, timefrom selenium import webdriverfrom lxml import etreef...
2018-12-04 17:11:34 6855 2
原创 Django 框架 - Admin站点
Admin 站点Django 能够根据定义的模型类自动地生成管理页面。使用 Django 的管理模块,需要按照如下步骤操作 :管理界面本地化创建管理员注册模型类自定义管理页面调整列表页展示list_per_page=100 # 页大小actions_on_top=True # “操作选项位置”list_display=[模型字段1,模型字段2,...] # 列表中的...
2018-12-01 18:24:51 179
原创 Django 框架 - 数据库操作
数据库ORM框架O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据。ORM框架还有一个功能,它可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程。django中内嵌了OR...
2018-12-01 18:22:58 182
原创 Django 框架 - 模板
模板配置在工程中创建模板目录templates。在settings.py配置文件中修改TEMPLATES配置项的DIRS值: 'DIRS': [os.path.join(BASE_DIR, 'templates')], # 此处修改定义模板在 templates 目录中新建模板文件,如 index.html 文件就是 html 文件,不过在需要数据的地方使用 moustach...
2018-12-01 18:19:28 120
原创 Django 框架 - 类视图和中间件
类视图与中间件类视图类视图引入以函数的方式定义的视图成为函数视图,函数视图便于理解,但是遇到一个视图对应的路径提供了多种不同 HTTP 请求方式的支持时,便需要在一个函数中编写不同的业务逻辑,代码可读性与复用性都不佳。比如说增删改查请求是一个链接的时候在 Django 中也可以使用类来定义一个视图,称为类视图使用类视图可以将视图对应的不同请求方式以类中的不同方法来区别定义。fro...
2018-12-01 18:17:12 163
原创 Django 框架 - 请求与响应
请求与响应请求利用 HTTP 协议向服务器传参的途径:提取 URL 的特定部分,如/weather/beijing/2018,可以在服务器端的路由中用正则表达式截取;查询字符串(query string),请求体(body)中发送的数据,如表单数据、json、xml在 http 保存的头(header)中URL 路径参数在定义路由 URL 时,可以使用正则表达式提取参数的方法...
2018-12-01 18:13:28 183
原创 Django 框架 - 配置静态文件与路由
配置静态文件与路由配置文件BASE_DIRBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))当前工程的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径。DEBUGDjango 默认 debug 模式运行修改代码文件,程序自动重启Django 程序出现...
2018-12-01 18:08:06 519
原创 Django 框架 - 工程搭建
工程搭建环境安装# 创建虚拟环境mkvirtualenv django_py3_1.11 -p python3# 安装 Djangopip install django==1.11.11# 相关命令# 虚拟环境mkvirtualenv # 创建虚拟环境rmvirtualenv # 删除虚拟环境workon # 进入虚拟环境、查看所有虚拟环境deactivate #...
2018-12-01 18:07:04 267 1
原创 python os 和 sys 模块的区别
os 和 sys 是两个非常常见的和操作系统交互的模块,一直不太懂二者的区别,在总结 Django 的过程中感觉不太懂路径 os.path.abspath(__file__) 的问题,搜索研究了一下。官方文档里对于二者区别有这样的描述:os: This module provides a portable way of using operating system dependent f...
2018-12-01 14:03:12 266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人