自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Scrapy框架Spider类和CrawlSpider类

Scrapy处理翻页数据抓取三种方案:根据业务场景灵活选择。分析网页url地址变化规律,在通过自增量拼接完整的url,发送请求获取响应,可以根据响应内容 或 响应状态码 做为停止条件。适合动态页面 json 文件的抓取,不依赖网页 标签分析网页下一页链接,并提取链接发送请求获取响应,再判断是否是最后一页做为停止条件。适合 html 文件的抓取,依赖网页 标签对于页码经...

2018-11-25 09:31:19 308

原创 scrapy 框架

函数 - 类 - 模块 - 包 - 框架1.发送请求,获取响应 send_request(request)urllib2、requests2. 解析响应,提取数据 parse_page(response)re、xpath、bs4、jsonpath3. 保存数据 save_data(item)mysql、redis、mongodb、json、csv、xmlScrapy 提供了三大...

2018-11-23 10:10:44 111

原创 多线程

一个CPU在同一个时间片,只能执行一个任务。并行 : 多个CPU同时执行多个任务(CPU >= 任务数)C10KIntel 超线程 : 一个CPU核心,可以有两个任务执行单元AMD并发 : 单个CPU需要执行多个任务 (CPU < 任务数)多进程 :multiprocessing 并行每个进程都有自己独立的内存空间,不同进程不能共享内存空间,所以多进程的任务开销太大。多...

2018-11-23 09:55:33 66

原创 MongoDB数据库

SQL:(MySQL、Oracle、SQL Server、DB2)高度事务性的场景,银行、会计、贸易、库管,需要大量原子性操作数据存储要求有规范的多表结构设计,预定义明确的字段数据价值高,对安全和稳定性要求高需要持久化存储的 “冷数据”(不需要经常读写的数据)需要通过SQL语句支持的存储场景NoSQL:Redis key:value(string、list、hash、set、...

2018-11-17 21:14:17 195

原创 Xpath 和 BeautifulSoup4区别对比

XPath1. 永远返回一个列表:有数据的列表 或 空列表2. XPath匹配时,下标从 1 开始3. XPath取值的 目标值 两种:-1. 指定标签的文本内容 (如取文本)-2. 指定标签的指定属性值 (如取链接)XPath取出的字符串数据,都是Unicode编码字符串。4. 如果取值的目标值很多,可以先获取所有结点列表,再迭代取值:获取结点列表node_list = "/...

2018-11-16 11:28:59 4351

原创 爬虫基本常识

json.loads() : 将 json字符串 转为对应的 Python数据类型json.dumps() : 将Python数据类型 转为对应的 Json字符串format 格式化输出,不需要指定类型 print('[INFO]:正在发送请求{}...'.format(url))timeout=3 三秒内没有响应就跳过response = urllib2.urlopen(requ...

2018-11-14 08:55:19 200

原创 印象笔记

Git安装使用与bug解决

2021-04-09 01:45:52 138

原创 Vuex的基本使用

1、安装vuex依赖包npm install vuex --save2、导入vuex包在store.js中导入import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({ state: { }, mutations: { }, actions: { }})3、创建store对象const store = new Vuex.Store({// sta

2021-04-04 01:23:56 114

原创 在App.vue中引入vue组件,页面上不显示组件也不报错的问题

如图:两个组件在页面上不显示原因:< template> (将要渲染的HTML)必须是包含在一个标签里面的。解决:最外层加个div包起来就行代码示例:在App.vue中引入一个组件App.vue<template> <div> <addition></addition> <p>--------------------</p> </div></template&g

2021-04-03 02:37:25 15084

原创 Vue第一天 : 模板语法&计算属性和监视

一 : 双大括号表达式toUpperCase() 表示转换为大写<div id="app"> <h2>1.双大括号表达式</h2> <p>{{msg}}</p> <!--testContent--> <p>{{msg.toUpperCase()}}</p> ...

2019-07-06 00:10:36 109

原创 PyCharm快捷键

Ctrl+b 追踪Alt + Enter 导入模块Ctrl + Shift + F 查找一 : 设置代码块二: 找不同 , 用来和源代码对比

2019-03-22 16:08:27 106

原创 在Windows下安装Scrapy

安装环境:Windows 10 64bitPython3.6 64bit在Windows下安装scrapy是比较麻烦的,具体的安装步骤如下:需要安装的包:1: pip install wheel2: pip install lxml3: pip install PyOpenssl4: pip install twisted5: pip install pywin326: pip...

2019-03-22 11:55:13 89

原创 Scrapy在PyCharm中直接执行

直接在PyCharm中执行Scrapy代码:在项目目录新建一个.py文件

2019-03-21 18:49:45 404

原创 selenium

selenium里发送的所有的字符串操作都是Unicode

2018-11-29 11:17:51 94

原创 Scrapy总结

scrapy中默认发送get请求 : 不带参数start_requests: 指定第一批发送带参数的请求方式start_requests()方法用以处理 start_urls里的每个请求发送方式,可以重写该方法自定义处理。def start_requests(self): for url in self.start_urls: yield scrapy.Request(url,...

2018-11-25 20:53:24 97

原创 random的使用 random choice randint

Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。random中的一些重要函数的用法:1 )、random() 返回0&lt;=n&lt;1之间的随机实数n;2 )、choice(seq) 从序列seq中返回随机的元素;3 )、getrandbits(n) 以长整型形式返回n个随机位;4 )、shuffle...

2018-11-23 16:42:09 3027

原创 selenium PhantomJS Fiddler使用

1 通过Python调用浏览器解析页面,处理动态数据加载(AJAX、JavaScript)selenium 可以执行浏览器的平台,并且可以执行浏览器的各种动作事件PhantomJS 就是一个无界面headless的浏览器Chrome 有界面的浏览器Selenium + PhantomJSSelenium + Chrome导入webdriverfrom selenium import...

2018-11-23 10:04:11 248

原创 列表操作

呵呵

2018-11-18 21:13:35 165

原创 数据提取之JSON与JsonPATH

json在线解析网站:http://www.json.cn/#import jsonjson模块提供了四个功能:dumps、dump、loads、load,用于字符串 和 python数据类型间进行转换。1 . json.loads()把json格式字符串解码转换成Python对象 从json到python的类型转换对照如下:2 . json.dumps()实现python类型转化...

2018-11-17 10:02:05 409

原创 HTTP请求流程

HTTP又称作超文本传输协议,主要用于网络传输超文本数据到本地浏览器的传送协议一、先了解一下域名的组成?1.URL: 统一资源定位符,即网页地址,是互联网上标准的资源访问地址,每个文件都有一个唯一的url2.域名地址的组成: http://www.baidu.com/index.html;user?id=5#commenthttp: //? ? www. baidu.com? ? :...

2018-11-16 15:37:46 102

原创 re正则匹配 (finall , search , split , sub)

re_findallimport res = "abcd1234bcda4321"pattern = re.compile(r"\d+")pattern.findall(s)text = "hahaha &lt;div id='123'&gt;Hello 123 World&lt;/div&gt; -mmmm- &lt;div id='123'&gt;Hello 456 World&...

2018-11-16 11:17:17 342

原创 多页抓取的停止条件设定

多页抓取的停止条件设定:通过提取下一页链接,并判断是否是最后一页方式通过提取总页数,再用列表推导式的方式获取所有url地址url_list = [“https://hr.tencent.com/position.php?&amp;start=” + str(page * 10) for page in range(0, 281)]根据响应状态码(不是200就有问题) / 响应内...

2018-11-16 10:46:18 156

原创 转码问题

Json模块的使用注意:通过json模块的 dumps或dump 方法,将Python数据转为json字符串并写入文件,默认按Unicode样式写入,文件编码为 ascii 。如果希望按utf-8编码写入,可以添加 ensure_ascii=False 参数,则表示不按Unicode样式写入,按解释器编码 转码再写入:json_str = json.dumps(item_list, en...

2018-11-16 10:45:25 167

原创 常用加密

UNIX时间戳: 10位 / 13位 纯数字,今年 15开头,明年16开头md5 sha1 不可逆加密:生成的结果是 十六进制数形式的字符串,小写字母(最大是f)+数据base64 加密: 大小写字母混合+数字,且后面一两位 是 =...

2018-11-12 21:32:46 142

原创 爬虫原理(GET\POST)

静态页面:数据保存在网页的HTML中动态页面:数据不直接保存在HTML中,而是服务器后台单独传输数据,再渲染到页面中。动态页面获取数据,必须抓包,找出浏览器和服务器之间传递的数据(json、js、xml)GET: 可能会有查询字符串,但是一定没有表单数据(查询字符串会显示在url后面)POST: 可能会有查询字符串,但是一定有表单数据(表单数据保存在请求体里发送)匹配:""" ^(.?...

2018-11-12 21:30:35 581

原创 爬虫(Py2和Py3区别)

什么是字符编码?计算机里的所有数据,本质都是二进制二进制 0b01100001 十进制 97 通过 ASCII编码表 对应字符 ‘a’简体中文: gb2312、gbk、gb18030, cp936 ,code page 936,一个汉字2个字节繁体中文: Big5日文:Shift-jis诞生了 Unicode编码,包含了世界上所有国家的字符,对编码进行了大一统。 每个字符占用 3~...

2018-11-12 11:00:14 383

原创 DRF

视图类:CreateAPIView序列化器:Serializer:属性,验证函数,保存函数write_only:表明该字段仅用于序列化输出,默认falseread_only:表明该字段仅用于反序列化输出,默认false...

2018-11-04 09:17:55 93

原创 Django的Models模型

ORM和原生SQL的优缺点:优点:实现了代码与数据操作的解耦合不需自己写原生sql, 提高开发效率防止SQL注入, 通过对象操作的方式,默认就是防止sql注入的。缺点:牺牲性能, 对象到原生SQL势必会有转换消耗,对性能有一定的影响复杂语句力不从心, 一些复杂的sql语句,用orm对象操作的方式很难实现,就还得用原生sqlModels模型:Django 的models把数...

2018-11-01 19:54:24 97

原创 Djangon常用代码

一、实现逻辑删除:is_delete = models.BooleanField(default=False)dafault = False二、验证(多属性判断)def validate(self,attrs):#能获取多个属性# attrs表示请求报文中所有的属性与值,类型为字典def validate_username(self, value):#获取一个属性 # 2.验...

2018-10-26 11:47:56 195

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除