- 博客(33)
- 收藏
- 关注
原创 python 移动端爬虫
移动端爬虫移动端爬虫移动端前导知识移动端背景移动端数据的作用移动端爬虫移动端前导知识移动端背景PC端 --> 移动端 --> 大数据 --> AI --> ???移动端数据的作用数据分析用户画像 —— 参考价值高(精准投放)商业竞争...
2021-03-30 11:06:10
934
原创 python Scrapy进阶(MongoDB)
MongoDB数据库MongoDB简介安装MongoDB的使用数据库命名规范MongoDB中的概念MongoDB的数据类型启动和连接MongoDB基本使用集合/表的创建、删除和查询插入数据MongoDB简介MongoDB —— 非关系型数据库(像关系型数据库的非关系型数据库),数据类型灵活优势无数据结构限制,业务开发方便快捷大数据量和高性能 —— 读写性能高良好的支持 —— 支持跨平台安装安装下载地址:https://www.mongodb.com/download-cente
2021-03-16 17:05:26
606
原创 python Scrapy进阶(scrapy-redis)
Scrapy进阶Scrapy进阶(下)Scrapy-redisScrapy-redis框架普通爬虫文件改写成分布式爬虫文件普通爬虫文件分布式爬虫文件Scrapy进阶(下)Scrapy-redis目标了解工作流程把普通爬虫改写分布式爬虫Scrapy和Scrapy-redis区别Scrapy爬取效率高,具有高度可定制性,不支持分布式Scrapy-redis基于redis数据库,运行在Scrapy框架上的一个组件,可以让Scrapy支持分布式策略,支持主从同步Scrapy-red
2021-03-10 10:47:40
238
原创 python Scrapy进阶(redis数据库)
Scrapy进阶(上)Scrapy进阶Redis数据库简介对比(关系型数据库)Redis特性Redis数据的使用数据库事务Scrapy进阶Redis数据库简介Redis数据库是非关系型数据库(NoSql)—— 非关系型数据库有 Redis/MongoDB/Hbase Hadoop等数据存储在缓存当中读取速度比较快对比(关系型数据库)持久化数据 —— 数据存储在硬盘读取速度相对较慢运行机制存在大量I/O操作关系型数据库有MySQL/Oracle/SQLServer等Redis特
2021-03-09 10:40:26
201
原创 python Scrapy(下)
ScrapyPipeline文件 —— 数据保存yield关键字 —— 生成器的一种item文件Pipeline文件 —— 数据保存注意事项:Pipeline在设置中的权重越小(字典中的值越小)优先级越高Pipeline中process_item方法、open_spider方法和close_spider方法不能修改为其他的名称可获取爬虫的名字spider.name可以在item中进行设置(item[xxx]=‘爬虫名’)# 字典当中的值越小,优先级越高,可以设置多个ITEM
2021-02-07 15:16:42
168
1
原创 python Scrapy(上)
多线程线程间的资源竞争互斥锁死锁队列Queue类方法线程间的资源竞争互斥锁使用方法:import threading变量 = threading.Lock() —— 不可重复锁变量.acquire() —— 上锁变量.release() —— 解锁死锁概念 —— 线程间共享多个资源的时候,如果两个线程分别占有一部分资源并同时等待对方的资源就会造成死锁队列概念 —— 如果需要把数据存储到队列中,python提供了一个线程安全的queue模块。调用方法:from queue
2021-01-25 17:18:30
168
1
原创 python tesseract和多线程
tesseract和多线程TesseractTesseract简介多线程多线程简介TesseractTesseract简介介绍 —— 将图像翻译成文字的OCR软件,目前由谷歌赞助,公认最优秀、最准确的开源OCR库,具有高识别度和高灵活性。调用方法:import pytesseractfrom PIL import Image —— PIL是python的图像处理库pytesseract.pytesseract.tesseract_cmd = r’tesseract软件路径’ —— 指定tes
2021-01-19 09:09:38
724
原创 python selenium(下)
seleniumseleniumselenium使用方法行为链cookie操作方法获取cookie所有数据:提取cookie需要的数据处理数据成cookie删除cookie页面等待隐式等待seleniumselenium使用方法行为链介绍 —— 模拟操作鼠标的一系列动作完成某个具体操作,这一系列动作称为行为链。selenium可以通过ActionChains类来完成这些行为链调用方法:from selenium.webdriver.common.action_chains import
2021-01-06 17:21:01
226
原创 python selenium(上)
seleniumseleniumselenium介绍Phantomjs使用方法get方法 —— 打开网址定位位置并输入内容点击事件并查看当前请求的url地址截屏seleniumselenium介绍selenium是一个web自动化测试工具,它可以直接运行在浏览器上,支持所有主流的浏览器,让浏览器自动加载页面并获取数据,甚至截屏。selenium需要配合浏览器使用,因此需要安装相应的插件(chrome举例,需要安装chromedriver)Phantomjs无头浏览器 —— 一个完整的浏览器
2021-01-04 16:05:31
205
2
原创 python BS4(下)
bs4搜索树get_text()方法select()方法搜索树get_text()方法获取tag中包含的文本内容get_text()方法仅适用字符串类型select()方法select()方法是通过css选择器的语法来查找目标CSS语法 —— https://www.w3school.com.cn/cssref/css_selectors.aspfrom bs4 import BeautifulSouphtml_doc = """<html><head>&
2021-01-04 16:04:41
163
原创 python BS4(上)
bs4上bs4简介bs4简介概念 —— Beautiful soup 是一个可以从HTML或XML文件中提取数据的网页信息提取库
2020-12-30 11:35:54
359
原创 python xpath使用
xpath使用xpathxpath介绍xml文档节点xpath工具xpath工具的使用lxml模块xpathxpath介绍概念 —— 一种XML查询语言,在XML文档中通过元素和属性进行导航XML概念 —— 一种标记语法的文本格式lxml模块 —— 包含将html文本转成xml对象,和对对象执行xpath功能xml文档节点<bookstore> <book> <title lang='eng'>Harry Potter</title&g
2020-12-28 10:04:56
124
原创 python正则表达式(上)
正则表达式上正则表达式re模块方法match方法元字符预定义字符集贪婪与非贪婪模式正则表达式概念 —— 是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑应用场景表单验证(如:邮箱、手机号、身份证…)爬虫正则表达式库 —— re模块re模块用法:import re方法match方法用法:re.match(pattern, string, flags=0)patte
2020-12-25 09:55:17
129
原创 Python第17讲
文件和super函数文件文件的打开、关闭及读写读取写入文件的打开模式文件对象的方法super()函数文件文件的打开、关闭及读写读取变量.read()函数 —— 读取文件所有内容,当文件较大时容易出现错误。read()函数可以向调用处输入数字,确定读取的数量。如read(10),读取前10个字符变量.readline()函数 —— 按行读取文件内容写入语法:先打开文件:with open(文件名(路径),encoding = ‘utf-8’,‘w’) as 变量名:再写入文
2020-12-03 15:59:30
108
原创 Python第16讲
模块及文件操作模块模块简介及引入模块简介模块引入的方法模块的使用文件文件的打开、关闭及读取模块模块化概念 —— 将一个完整的程序分解成一个一个的小模块优点:方便开发和维护模块可以复用模块简介及引入模块简介每个py文件都是一个模块模块的引入 —— 在一个模块中引入外部模块一个模块可以引入多次,但这个模块只创建一次模块引入的方法import 模块名 —— 直接引用模块import 模块名 as 模块别名 —— 直接引用模块,并将模块名更换成别名from 模
2020-12-02 14:51:26
90
原创 Python第15讲
面向对象继承多重继承多态继承多重继承Python中支持多重继承(开发中很少使用多重继承,且尽量避免多重继承)多个父类中有同名的方法,则在第一个父类寻找,然后再找第二个,以此类推class A: def text(self): print('我是A')class B: def text(self): print('我是B')class C(A,B): #根据继承顺序寻找,A在前,先找A的方法,如果B在前,现在B的方法 passc = C()c.text() # 我是A
2020-11-30 10:40:35
111
原创 Python第14讲
面向对象(下)封装引入使用弱封装强封装常用封装方法类的装饰器@property@属性名.setter@属性名.deleter继承方法的重写封装引入封装是面向对象的三大特性之一如果不封装的话,可以直接通过对象.属性的方式来修改属性的值,数据会非常不安全封装是一种增强数据安全的方式属性不能随意修改(可修改,但不要轻易修改,遵循OCP原则)属性不能修改成任意值使用定义 —— 指隐藏对象中一些不希望被外界访问到的属性和方法弱封装将对象的属性名修改成外界不知道的名字提供一个g
2020-11-26 17:04:00
120
原创 Python第13讲
面向对象(中)面向对象面向对象回顾(上节课)self参数讲解特殊方法\_\_init__方法类的基本结构面向对象面向对象回顾(上节课)面向对象的结构id(标识)type(类型)value(值)面向对象的介绍python是一门面向对象的编程语言好处 —— 复用性比较高且方便维护坏处 —— 编写有一定难度类python提供一些内置类 —— 如list() int() float() set()…自己创建的类是一个可以创建对象的对象类型是type类创建的对象
2020-11-24 16:40:21
66
原创 Python第11讲
函数函数高阶函数匿名函数 —— lambda闭包装饰器简介函数高阶函数概念 —— 接收函数作为参数,或者将函数作为返回值返回的函数作用 —— 使用一个函数作为参数时,实际是将制定的代码传递到目标函数匿名函数 —— lambda使用要求 —— 创建简单的函数。(是函数的另一种创建方式)语法:lambda 参数列表: 返回值闭包概念 —— 将函数作为返回值返回的函数作用 —— 创建一些只有当前函数能够访问的变量,可以将私有或重要的数据藏到闭包中条件:函数嵌套将内部函数作为
2020-11-19 16:11:07
107
原创 Python第10讲
函数函数实参的类型不定长参数函数实参的类型实参可以传递任意类型的对象 —— 调用函数时,解释器不会检查实参的类型在函数中重新给形参赋值,不会影响其他变量如果形参执行的是一个对象,当通过形参取修改对象时,会影响所有指向该对象的变量(可以通过切片,copy()方法等传递参数,不会影响实参的变量)> def fn(a):> a[2] = 30> print('a =',a,id(a))> b = [1,2,3] > # 直接传递实参> fn
2020-11-16 12:37:20
164
原创 Python第9讲
字典、集合和函数字典copy()方法深复制遍历字典集合简介集合的方法集合的运算函数简介字典copy()方法概念 —— 用来对序列浅复制(浅复制只会复制可变序列本身,如果可变序列中还有可变序列是不会进行复制。如list)> a = {'a':1, 'b':2, 'c':3}> b = a.copy()> print(id(a),'|',id(b))> 2350196295488 | 2350197381760 # id不同,修改任意一个字典都不影响另外一个字典&g
2020-11-12 22:24:47
126
原创 Python第8讲
元组和字典元组创建元组方式元组的解包可变对象可变对象的常用使用方法==、 !=、 is、 is not 比较的内容元组元组是不可变序列元组可以使用通用操作通常希望数据不改变时使用元组,其他情况用列表创建元组方式小括号 —— x = ()函数 —— x = tuple([iterable]) 可迭代对象str、list逗号 —— x = a,或 x = (a,) 或 x = a,b,c 或 x = (a,b,c) 元组不为空时,至少有1个逗号元组的解包解包概念 —— 指将元组当中
2020-11-11 15:59:14
214
原创 Python第七讲
列表通用操作加法运算 —— 将多个列表合并(拼接)为一个列表乘法运算 —— 将列表重复指定的次数(复制)lst = [1,2,3]*[2,3,4]'''File "<stdin>", line 1, in <module>TypeError(类型错误): can't multiply sequence by non-int of type 'list''''lst = [1,2,3]*2[1, 2, 3, 1, 2, 3]in —— 用来检查指定元素是否
2020-11-09 17:25:28
106
原创 Python第六讲
循环嵌套循环体里面嵌入另一个个循环成为循环嵌套语法:while循环while 条件表达式: while 条件表达式: 代码块 代码块for循环for 变量 in 循环规则: for 变量 in 循环规则: 代码块 代码块continue和break语句continue —— 跳出本次循环break —— 立即退出循环语句,并且包括else语句序列Python中的一种基本数据结构数据结构指计算机中数据的存储方式序列的分类
2020-11-06 16:00:55
168
1
原创 Python第五讲
接第四讲 —— 运算符条件运算符(三元运算符)语句1 —— if —— 表达式 —— else ——语句2if后的表达式没有冒号if后的表达式为True,执行语句1if后的表达式为False,执行语句2三元表达式嵌套(语句1 — if — 表达式 — else(语句2 — if — 表达式 — else — 语句3)括号内嵌入一个三元表达式和语句1的三元表达式组成三元表达式嵌套运算符的优先级看python文档中Operator precedence条件控制语句条件判断语句(if语句)
2020-11-04 16:43:09
224
1
原创 Python学习第四讲
运算符概念 —— 用于执行程序代码运算,针对一个以上操作数项目来进行运算运算符分类(常用运算符)算术运算符赋值运算符比较运算符(关系运算符)逻辑运算符条件运算符(三元运算符)算数运算符加 ‘+’ —— 数字加法运算,字符串拼接减 ‘-’ —— 数字减法运算乘 ‘*’ —— 数字乘法运算,字符串复制次数除 ‘/’ —— 数字除法运算(分母不得为0)取整除 ‘//’ —— 数字除法运算,只取整数,小数不四舍五入取余数 ‘%’ —— 数字除法运算,只取商数幂运算 ‘**’
2020-11-02 17:16:29
127
原创 Python学习第三讲
数据基本类型整数型 —— int表示所有整数(无穷大)浮点型 —— float表示小数类型(小数类型有无限循环数,所以小数运算时无限接近正确值)整数型和浮点型均可用科学计数法(e或E表示),1.5*1000==1.5e4布尔值只有2个值:True和FalseTrue和False也是数值,True表示1,False表示0,编程时不建议把布尔值当成数值运算,容易引起代码混乱空值 —— None表示变量变量的概念 —— 计算机内存中的一块区域,存储规定范围内的值(值可改变),通俗讲变量就
2020-10-30 10:19:10
134
原创 Python学习第二讲
Python要点Python语言Python的基本概念Python的特点Python语言Python的基本概念兼具简单与功能强大的面向对象、解释型的编程语言官方介绍:易于学习且功能强大的编程语言名字的由来:马戏团名字命名Python的特点简单易学 — 专注于解决问题,没有复杂的语法自由且开放 —...
2020-10-28 17:25:47
115
原创 Python学习第一讲
计算机概述计算机基本概念+ 计算机类型 电脑,计算器,手机等+ 特点 数值计算,逻辑计算,存储等功能计算机的组成+ 硬件 CPU,内存,主板,硬盘,显示设备和其他外部设备等组成+ 软件 操作系统和各类应用程序组成计算机语言人与计算机通讯的语言 + C, C++, JAVA, PYTHON等多种 + 字符,数字,语法规则是计算机接收的语言 + 计算机语言的发展 - 机器语言(二进制代码)--> 汇编语言 --> 高级语言(java,python等) + 计算
2020-10-27 16:04:06
304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人