最新帖子

python 元类编程

1.property动态属性

阅读全文

python 对象引用、可变性和垃圾回收

本小节介绍了python中变量的本质、==和is的区别、还有del语句和垃圾回收、还有在实际工作中尝尝遇到的一个问题参数传递问题。 阅读全文

python dict

本小节讲解dict的abc继承关系,根据继承关系,如果想要实现一个dict数据结构,需要实现Mapping类对应的魔法函数。dict子类中将当我们需要继承dict时候,不应该继承python原生dict,而应该继承collections下提供UserDict类。最后介绍dict的实现原理,已经dict的优缺点。 阅读全文

python 自定义序列类

本小节介绍序列分类、序列的协议、+和=+的区别、extend和append区别、如何实现可切片的对象、用bisect维护一个升序序列。 阅读全文

python Mixin

大多数面向对象语言都不支持多重继承,因为这会导致著名的Diamond problem, 而 Python 虽然形式上支持多重继承,但其实现机制却是利用 mixin,从而有效 地避免了 Diamond problem。 阅读全文

python 类和对象

本小节介绍了鸭子模型、抽象基类、类变量和实例变量、python中类的继承顺序、对象的私有属性、对象的自省机制、super函数。 阅读全文

python 魔法函数

本小节主要讲python中魔法函数,并用表格的方式列举出python中的魔法函数,供大家查找学习。最后还讲了len函数在python中是如何工作的。 阅读全文

python 一切皆对象

python进阶中需要深入理解python中一切皆对象,只有理解python中一切皆对象后,才能在python编程中越走越远。 阅读全文

Scrapy 常用技巧总结

本帖主要记录小菜在爬虫学习过程中常用的技巧。 阅读全文

centos7 pip3安装psycopg2出错

最近想在服务器上运行下自己写的代码,代码中用到了postgresql,但是在安装psycopg2的时候发现报错了,错误如下 阅读全文

Scrapy源码分析 核心抓取流程(4)

在小菜初学scrapy时,从google上发现了几篇非常不错的文章,未经博主同意擅自将博主的文章收藏,主要怕日后看时,找不到此文章。小菜在这里向博主致敬,希望看到这篇帖子的小伙伴能够阅读原贴。 阅读全文

Scrapy源码分析 核心组件初始化(3)

在小菜初学scrapy时,从google上发现了几篇非常不错的文章,未经博主同意擅自将博主的文章收藏,主要怕日后看时,找不到此文章。小菜在这里向博主致敬,希望看到这篇帖子的小伙伴能够阅读原贴。 阅读全文

Scrapy源码分析 运行入口(2)

在小菜初学scrapy时,从google上发现了几篇非常不错的文章,未经博主同意擅自将博主的文章收藏,主要怕日后看时,找不到此文章。小菜在这里向博主致敬,希望看到这篇帖子的小伙伴能够阅读原贴。 阅读全文

Scrapy源码分析 架构概览(1)

在小菜初学scrapy时,从google上发现了几篇非常不错的文章,未经博主同意擅自将博主的文章收藏,主要怕日后看时,找不到此文章。小菜在这里向博主致敬,希望看到这篇帖子的小伙伴能够阅读原贴。 阅读全文

知乎中文倒立验证码识别

最近学习scrapy中,在爬取知乎问答时,遇到中知乎中文验证码不知道怎么办。下面就简单记录一下识别知乎中文验证码。 阅读全文

python 云打码识别验证码

现在基本每个网站在登录注册时都会要求输入验证码才能进行后续操作,在爬知乎时,小菜就遇到了这个问题,所以单独将云打码识别验证码记录一下。云打码属于第三方平台,所以识别需要收费,费用个人觉得还可以接受。 阅读全文

Scrapy 知乎模拟登陆 (10)

上小节从无到有写了一个完整的小爬虫,本小节我们继续练习爬虫。相信小伙伴已经知道我们这次爬取的目标是谁了,爬取知乎比爬取下厨房困难一些,原因就是知乎的反爬机制比下厨房的反爬机制更完善。知乎查看问答,必须要登录。我们要想爬取知乎的数据,首先得让程序自动登录。 阅读全文

Scrapy chromedriver被识别

虽然chromedriver已经可以可以使用浏览器登录了,但是由于浏览器还是被chromedriver控制的,chromedriver有一些特性可以被js感知到,所以很多网站可以在网站中加入js逻辑来判断当前的浏览器是否是由driver控制,比如检测是否存在特有标识$cdc_lasutopfhvcZLmcflwindow.navigator.webdriver阅读全文

Scrapy spider未进入parse

在初学scrapy时,按照官方的文档写了一个爬虫片段,发现怎么都会不会进入parse()方法。下面是spider代码 阅读全文

Scrapy 手写一个爬虫(9)

在第一小节中介绍如果创建一个爬虫项目并跑起来,后面几个小节讲解了有关scrapy的基本知识。本小节将运用之前学习的知识写一个爬虫项目。 阅读全文

Scrapy 架构概览(8)

在学习了scrapy基础后,我们在来了解一下scrapy的架构概览,这有助于我们更好的了解、学习scrapy。下面介绍Scrapy的体系结构及其组件之间的交互方式。 阅读全文

Scrapy Feed exports(7)

实现爬虫时最经常提到的需求就是能合适的保存爬取到的数据,或者说,生成一个带有爬取数据的导出文件(通常叫做export feed),来供其他系统使用。 阅读全文

Scrapy Item Pipeline(6)

ItemSpider中被收集之后,它将会被传递到 Item Pipeline,一些组件会按照一定的顺序执行对 Item 的处理 阅读全文

Scrapy Item Loaders(5)

Item Loaders 提供了一种便捷的方式填充抓取到的:Items。虽然 Items 可以使用自带的类字典形式 API 填充,但是 Items Loaders 提供了更便捷的 API,可以分析原始数据并对 Item 进行赋值。 阅读全文

Scrapy Item(4)

抓取的主要目的是从非结构化源(通常是网页)中提取结构化数据。Scrapy Spider可以将提取的数据作为Python字典返回。Python字典虽然方便且熟悉,但缺乏结构:很容易在字段名称中输入错误或返回不一致的数据,尤其是在具有许多蜘蛛的大型项目中。 阅读全文

Scrapy 选择器(3)

Scrapy带有自己的数据提取机制,称为选择器。scrapy有xpathcss两种选择器。XPath 是一种在XML文档中选择节点的语言,也可以与HTML一起使用。 CSS 是用于将样式应用于HTML文档的语言。它定义选择器,将这些样式与特定的HTML元素相关联。 阅读全文

Scrapy 命令行工具(2)

Scrapy是通过scrapy 命令行工具进行控制的。 这里我们称之为 Scrapy tool以用来和子命令进行区分。 对于子命令,我们称为 “command” 或者 “Scrapy commands”。 阅读全文

scrapy Fatal error in launcher

在配置scrapy时,出现Fatal error in launcher: Unable to create process using '"c:\bld\scrapy_1564674375870\_h_env\python.exe" "D:\anaconda\envs\PY37\Scripts\scrapy.exe" ' 阅读全文

Scrapy 安装并创建运行爬虫项目(1)

Scrapy是一个用于爬取网站并提取结构化数据的应用程序框架,可用于各种有用的应用程序,例如数据挖掘,信息处理或历史档案。 阅读全文

Flask 视图函数返回(5)

视图函数返回与普通函数的返回不同,视图函数返回的是一个response对象。 阅读全文

Flask app.run参数(4)

在之前代的demo中看到app.run(),然后启动一个应用程序,通过localhost:5000就能访问我们的视图函数。我们每次更改代码就需要手动重启,还有就是外网不能访问,或者同局域网其他机器不能访问,这些原因都藏在app.run()方法参数中。 阅读全文

Flask 路由(3)

现代 web 应用都使用有意义的 URL ,这样有助于用户记忆,网页会更得到用户的青睐, 提高回头率。 阅读全文

Flask URL(2)

上小节我们搭建Flask环境并且写了一个Flask最小应用。接下来讲讲Flask中的URL,在讲解之前,需要了解web的URL后面加’/’和不加’/’有什么区别。请小伙伴思考下面两个链接有什么区别? 阅读全文

Flask 准备工作(1)

Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2模板引擎。 阅读全文

Python with(22)

with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的清理操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。 阅读全文

Python 杂记(21)

1.列表推导式

阅读全文

Python 装饰器(20)

装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码到装饰器中并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。 阅读全文

Python 闭包(19)

闭包是什么?小菜很难用一句话说明或者用白话文概括。我们先看看其他语言是怎么定义闭包的。 阅读全文

Python 枚举(18)

enum模块定义了一个具备可迭代性和可比较性的枚举类型。 它可以为值创建具有良好定义的标识符,而不是直接使用字面上的字符串或者整数 阅读全文

Python json(17)

json是一种轻量级的数据交换格式。在python中使用json需要先导入json包阅读全文

Python 正则(16)

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。在python中使用正则需要先引入正则模块re阅读全文

Python 面向对象(15)

面向对象最重要的概念就是(Class)和实例(Instance)有些人也将实例称之为对象对象实例个人认为是同一个意思。 阅读全文

Python 函数二(14)

在上一小节中简单的介绍了函数的基本用法,这小节将继续介绍关于函数的用法和技巧。本小节将主要介绍匿名函数三元表达式mapreducefilter阅读全文

Python 函数一(13)

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 阅读全文

Python 包 模块(12)

为了更好的开发、维护、管理项目,我们需要了解python中项目的组织结构。 阅读全文

Python 循环语句(11)

python中常见的循环语句whileforrange()阅读全文

Python 条件语句(10)

从这小节之后,小菜就不用IDLE里面写实例,将用vsCode来编写python代码。 阅读全文

Python 运算符(9)

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。 阅读全文

Python 变量(8)

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 阅读全文

Python 字典 dict(7)

字典在其他语言里可能会被叫做 联合内存 或 联合数组。与以连续整数为索引的序列不同,字典是以 关键字 为索引的,关键字可以是任意不可变类型,通常是字符串或数字。如果一个元组只包含字符串、数字或元组,那么这个元组也可以用作关键字。但如果元组直接或间接地包含了可变对象,那么它就不能用作关键字。列表不能用作关键字,因为列表可以通过索引、切片或 append() 和 extend() 之类的方法来改变。 阅读全文

Python 集合set(6)

Python也包含有 集合 类型。集合是由不重复元素组成的无序的集。它的基本用法包括成员检测和消除重复元素。集合对象也支持像 联合,交集,差集,对称差分等数学运算。 阅读全文

Python 元组tuple(5)

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 阅读全文

Python 列表List(4)

Python 中可以通过组合一些值得到多种复合数据类型。其中最常用的列表,可以通过方括号括起、逗号分隔的一组值得到。一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同 6.常见列表操作函数

1.列表的定义

阅读全文

Python 字符串 str(3)

字符串是由零个或多个字符组成的有限序列,它是编程语言中表示文本的数据类型。字符串是一种序列类型,因此也支持序列类型的各种操作。 阅读全文

Python 基本数据类型 Number(2)

数字数据类型用于存储数值。他们是不可变的数据类型,数字数据类型会分配一个新的对象。 阅读全文

Python 准备工作(1)

最近我们老大问我想学习Python吗?我这个小员工又不能拒绝,看到之前好多身边的人都开始学习Python,对Python处理大数据的能力是非常感兴趣,所以也没多想就答应了。后面就在自己博客上开了python这节教程,主要是记录小菜从零开始学习python的过程。后面我就开始入坑了。 阅读全文

vscode pycharm 选择anaconda虚拟环境

之前介绍过用anaconda创建python的虚拟环境,本贴记录如何在vscodepycharm编辑器中切换anaconda创建的虚拟环境 阅读全文

python anaconda安装

Anaconda是一个方便的python包管理和环境管理软件,一般用来配置不同的项目环境。我们常常会遇到这样的情况,正在做的项目A和项目B分别基于python2和python3,而第电脑只能安装一个环境,这个时候Anaconda就派上了用场,它可以创建多个互不干扰的环境,分别运行不同版本的软件包,以达到兼容的目的。 阅读全文

centos7安装 python3.6

CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。 阅读全文

python 学习资料

本小节收集记录有关于python的学习资料 阅读全文