自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(210)
  • 资源 (16)
  • 收藏
  • 关注

原创 常见排序算法效率比较

常⻅排序算法效率⽐较

2018-12-16 18:45:08 990

转载 第20讲:代理的基本原理和用法

我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么的美好,然而一杯茶的功夫可能就会出现错误,比如 403 Forbidden,这时候打开网页一看,可能会看到 “您的 IP 访问频率太高” 这样的提示,或者跳出一个验证码让我们输入,输入之后才可能解封,但是输入之后过一会儿就又这样了。出现这种现象的原因是网站采取了一些反爬虫的措施,比如服务器会检测某个 IP 在单位时间内的请求次数,如果超过了这个阈值,那么会直接拒绝服务,返回一些错误信息,这种情况可以称之为封 IP,

2021-01-13 11:38:21 195

转载 第31讲:抓包利器 Charles 的使用

本课时我们主要学习如何使用 Charles。Charles 是一个网络抓包工具,我们可以用它来做 App 的抓包分析,得到 App 运行过程中发生的所有网络请求和响应内容,这就和 Web 端浏览器的开发者工具 Network 部分看到的结果一致。Charles、Fiddler 等都是非常强大的 HTTP 抓包软件,功能基本类似,不过 Charles 的跨平台支持更好。所以我们选用 Charles 作为主要的移动端抓包工具,用于分析移动 App 的数据包,辅助完成 App 数据抓取工作。本节目标本节我

2021-01-13 11:38:01 117

转载 第26讲:模拟登录爬取实战案例

在上一课时我们了解了网站登录验证和模拟登录的基本原理。网站登录验证主要有两种实现,一种是基于 Session + Cookies 的登录验证,另一种是基于 JWT 的登录验证,那么本课时我们就通过两个实例来分别讲解这两种登录验证的分析和模拟登录流程。准备工作在本课时开始之前,请你确保已经做好了如下准备工作:安装好了 Python (最好 3.6 及以上版本)并能成功运行 Python 程序;安装好了 requests 请求库并学会了其基本用法;安装好了 Selenium 库并学会了其基本用法。

2021-01-13 11:37:31 156

转载 第48讲:分布式利器 Scrapy-Redis 原理

在上节课我们提到过,Scrapy-Redis 库已经为我们提供了 Scrapy 分布式的队列、调度器、去重等功能,其 GitHub 地址为: https://github.com/rmax/scrapy-redis。本节课我们深入掌握利用 Redis 实现 Scrapy 分布式的方法,并深入了解 Scrapy-Redis 的原理。获取源码可以把源码克隆下来,执行如下命令:git clone https://github.com/rmax/scrapy-redis.git核心源码在 scrapy-r

2021-01-13 11:37:08 84

转载 第17讲:aiohttp 异步爬虫实战

在上一课时我们介绍了异步爬虫的基本原理和 asyncio 的基本用法,另外在最后简单提及了 aiohttp 实现网页爬取的过程,这一可是我们来介绍一下 aiohttp 的常见用法,以及通过一个实战案例来介绍下使用 aiohttp 完成网页异步爬取的过程。aiohttp前面介绍的 asyncio 模块内部实现了对 TCP、UDP、SSL 协议的异步操作,但是对于 HTTP 请求的异步操作来说,我们就需要用到 aiohttp 来实现了。aiohttp 是一个基于 asyncio 的异步 HTTP 网络模块

2021-01-13 11:36:48 280

转载 第18讲:爬虫神器 Pyppeteer 的使用

在前面我们学习了 Selenium 的基本用法,它功能的确非常强大,但很多时候我们会发现 Selenium 有一些不太方便的地方,比如环境的配置,得安装好相关浏览器,比如 Chrome、Firefox 等等,然后还要到官方网站去下载对应的驱动,最重要的还需要安装对应的 Python Selenium 库,而且版本也得好好看看是否对应,确实不是很方便,另外如果要做大规模部署的话,环境配置的一些问题也是个头疼的事情。那么本课时我们就介绍另一个类似的替代品,叫作 Pyppeteer。注意,是叫作 Pyppete

2021-01-13 11:36:22 1198 2

转载 第32讲:实时处理利器 mitmproxy 的使用

在上一节课我们讲解了 Charles 的使用,它可以帮助我们抓取 HTTP 和 HTTPS 的数据包,抓到请求之后,我们如果能够分析出接口请求的一些规律,就能轻松通过 Python 脚本来进行改写。可是当请求里面包含一些无规律的参数的时候,可能就束手无策了。本节课我们介绍一个叫作 mitmproxy 的工具,它可以对抓包的结果通过脚本进行实时处理和保存,接下来我们来一起了解下吧。1.介绍mitmproxy 是一个支持 HTTP 和 HTTPS 的抓包程序,有类似 Fiddler、Charles 的功能,

2021-01-13 11:35:53 208

转载 第16讲:异步爬虫的原理和解析

我们知道爬虫是 IO 密集型任务,比如如果我们使用 requests 库来爬取某个站点的话,发出一个请求之后,程序必须要等待网站返回响应之后才能接着运行,而在等待响应的过程中,整个爬虫程序是一直在等待的,实际上没有做任何的事情。对于这种情况我们有没有优化方案呢?实例引入比如在这里我们看这么一个示例网站:https://static4.scrape.cuiqingcai.com/,如图所示。这个网站在内部实现返回响应的逻辑的时候特意加了 5 秒的延迟,也就是说如果我们用 requests 来爬取其中某

2021-01-11 16:42:47 229

转载 第30讲:如何爬app的数据

前面我们介绍的都是爬取 Web 网页的内容。随着移动互联网的发展,越来越多的企业并没有提供 Web 网页端的服务,而是直接开发了 App,更多更全的信息都是通过 App 来展示的。那么针对 App 我们可以爬取吗?当然可以。我们知道 Web 站点有多种渲染和反爬方式,渲染分为服务端渲染和客户端渲染;反爬也是多种多样,如请求头验证、WebDriver 限制、验证码、字体反爬、封禁 IP、账号验证等等,综合来看 Web 端的反爬虫方案也是多种多样。但 App 的情况略有不同,一般来说,App 的数据通信大都

2021-01-11 16:42:04 169

转载 第33讲:可见即可爬,Appium 的使用

本课时我们主要学习如何使用 Appium。Appium 是一个跨平台移动端自动化测试工具,可以非常便捷地为 iOS 和 Android 平台创建自动化测试用例。它可以模拟 App 内部的各种操作,如点击、滑动、文本输入等,只要我们手工操作的动作 Appium 都可以完成。在前面我们了解过 Selenium,它是一个网页端的自动化测试工具。Appium 实际上继承了 Selenium,Appium 也是利用 WebDriver 来实现 App 的自动化测试的。对 iOS 设备来说,Appium 使用 UIA

2021-01-11 16:41:28 172

转载 第21讲:IP代理池的搭建和使用

我们在上一课时了解了利用代理可以解决目标网站封 IP 的问题,但是如何实时高效地获取到大量可用的代理又是一个问题。首先在互联网上有大量公开的免费代理,当然我们也可以购买付费的代理 IP,但是代理不论是免费的还是付费的,都不能保证是可用的,因为可能此 IP 已被其他人使用来爬取同样的目标站点而被封禁,或者代理服务器突然发生故障或网络繁忙。一旦我们选用了一个不可用的代理,这势必会影响爬虫的工作效率。所以,我们需要提前做筛选,将不可用的代理剔除掉,保留可用代理。那么这个怎么来实现呢?这里就需要借助于一个叫作代

2021-01-11 16:40:31 364

转载 第14讲:Selenium 的基本使用

上个课时我们讲解了 Ajax 的分析方法,利用 Ajax 接口我们可以非常方便地完成数据的爬取。只要我们能找到 Ajax 接口的规律,就可以通过某些参数构造出对应的的请求,数据自然就能被轻松爬取到。但是,在很多情况下,Ajax 请求的接口通常会包含加密的参数,如 token、sign 等,如:https://dynamic2.scrape.cuiqingcai.com/,它的 Ajax 接口是包含一个 token 参数的,如图所示。由于接口的请求加上了 token 参数,如果不深入分析并找到 toke

2021-01-11 15:42:36 164

转载 第10讲:高效存储 MongoDB 的用法

上节课我们学习了如何用 pyquery 提取 HTML 中的信息,但是当我们成功提取了数据之后,该往哪里存放呢?用文本文件当然是可以的,但文本存储不方便检索。有没有既方便存,又方便检索的存储方式呢?当然有,本课时我将为你介绍一个文档型数据库 —— MongoDB。MongoDB 是由 C++ 语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似 JSON 对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活。在这个课时中,我们就来看看 Python 3 下 M

2021-01-11 15:42:05 141

转载 第06讲:多路加速,了解多进程基本原理

在上一课时我们了解了多线程的基本概念,同时我们也提到,Python 中的多线程是不能很好发挥多核优势的,如果想要发挥多核优势,最好还是使用多进程。那么本课时我们就来了解下多进程的基本概念和用 Python 实现多进程的方法。1.多进程的含义进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。顾名思义,多进程就是启用多个进程同时运行。由于进程是线程的集合,而且进程是由一个或多个线程构成的,所以多进程的运行意味着有大于或等于进程数量的线

2021-01-11 14:08:29 146

转载 第05讲:多路加速,了解多线程基本原理

我们知道,在一台计算机中,我们可以同时打开许多软件,比如同时浏览网页、听音乐、打字等等,看似非常正常。但仔细想想,为什么计算机可以做到这么多软件同时运行呢?这就涉及到计算机中的两个重要概念:多进程和多线程了。同样,在编写爬虫程序的时候,为了提高爬取效率,我们可能想同时运行多个爬虫任务。这里同样需要涉及多进程和多线程的知识。本课时,我们就先来了解一下多线程的基本原理,以及在 Python 中如何实现多线程。1.多线程的含义说起多线程,就不得不先说什么是线程。然而想要弄明白什么是线程,又不得不先说什么是

2021-01-11 14:07:31 173 2

转载 第08讲:解析无所不能的正则表达式

在上个课时中,我们学会了如何用 Requests 来获取网页的源代码,得到 HTML 代码。但我们如何从 HTML 代码中获取真正想要的数据呢?正则表达式就是一个有效的方法。本课时中,我们将学习正则表达式的相关用法。正则表达式是处理字符串的强大工具,它有自己特定的语法结构。有了它,我们就能实现字符串的检索、替换、匹配验证。当然,对于爬虫来说,有了它,要从 HTML 里提取想要的信息就非常方便了。实例引入说了这么多,可能我们对正则表达式的概念还是比较模糊,下面就用几个实例来看一下正则表达式的用法。

2021-01-11 14:06:47 115

转载 第07讲:入门首选,Requests 库的基本使用

上一课时我们了解了一些学习爬虫所需要的基本知识。从本课时开始,我们正式步入Python 爬虫的大门。学习爬虫,最基础的便是模拟浏览器向服务器发出请求,那么我们需要从什么地方做起呢?请求需要我们自己来构造吗?需要关心请求这个数据结构的实现吗?需要了解 HTTP、TCP、IP 层的网络传输通信吗?需要知道服务器的响应和应答原理吗?可能你无从下手,不过不用担心,Python 的强大之处就是提供了功能齐全的类库来帮助我们完成这些请求。利用 Python 现有的库我们可以非常方便地实现网络请求的模拟,常见的库有

2021-01-11 14:04:08 137

转载 第36讲: 使用Jeb工具反编译安卓APK

现在我们可以看到很多 App 在请求 API 的时候都有加密参数,前面我们也介绍了一种利用 mitmdump 来实时抓取数据的方法,但是这总归还有些不方便的地方。如果要想拿到 App 发送的请求中包含哪些加密参数,就得剖析本源,深入到 App 内部去找到这些加密参数的构造逻辑,理清这些逻辑之后,我们就能自己用算法实现出来了。这其中就需要一定的逆向操作,我们可能需要对 App 进行反编译,然后通过分析源码的逻辑找到对应的加密位置。所以,本课时我们来用一个示例介绍App 逆向相关操作。1.案例介绍这里我

2021-01-11 14:03:38 162 1

转载 第15讲:Selenium 爬取实战

在上一课时我们学习了 Selenium 的基本用法,本课时我们就来结合一个实际的案例来体会一下 Selenium 的适用场景以及使用方法。1.准备工作在本课时开始之前,请确保已经做好了如下准备工作:安装好 Chrome 浏览器并正确配置了 ChromeDriver。安装好 Python (至少为 3.6 版本)并能成功运行 Python 程序。安装好了 Selenium 相关的包并能成功用 Selenium 打开 Chrome 浏览器。2.适用场景在前面的实战案例中,有的网页我们可以直接用

2021-01-11 14:03:03 91

转载 第02讲:夯实根基,Web 网页基础

网页的组成首先,我们来了解网页的基本组成,网页可以分为三大部分:HTML、CSS 和 JavaScript。如果把网页比作一个人的话,HTML 相当于骨架,JavaScript 相当于肌肉,CSS 相当于皮肤,三者结合起来才能形成一个完整的网页。下面我们来分别介绍一下这三部分的功能。1.HTMLHTML 是用来描述网页的一种语言,其全称叫作 Hyper Text Markup Language,即超文本标记语言。我们浏览的网页包括文字、按钮、图片和视频等各种复杂的元素,其基础架构就是 HTML。不

2021-01-11 14:02:26 129

转载 第41讲:Scrapy框架的介绍

在前面编写爬虫的时候,如果我们使用 requests、aiohttp 等库,需要从头至尾把爬虫完整地实现一遍,比如说异常处理、爬取调度等,如果写的多了,的确会比较麻烦。那么有没有什么办法可以提升我们编写爬虫的效率呢?当然是有的,那就是利用现有的爬虫框架。说到 Python 的爬虫框架,Scrapy 当之无愧是最流行最强大的框架了。本节我们就来初步认识一下 Scrapy,后面的课时我们会对 Scrapy 的功能模块进行详细介绍。Scrapy 介绍Scrapy 是一个基于 Twisted 的异步处理框架

2021-01-07 16:28:20 116

转载 第42讲:scrapy框架的基本使用

接下来介绍一个简单的项目,完成一遍 Scrapy 抓取流程。通过这个过程,我们可以对 Scrapy 的基本用法和原理有大体了解。本节目标本节要完成的任务如下。创建一个 Scrapy 项目。创建一个 Spider 来抓取站点和处理数据。通过命令行将抓取的内容导出。将抓取的内容保存到 MongoDB 数据库。本节抓取的目标站点为 http://quotes.toscrape.com/。准备工作我们需要安装好 Scrapy 框架、MongoDB 和 PyMongo 库。如果尚未安装,请参照之

2021-01-07 16:27:57 99

转载 第43讲:灵活好用的 Spider 的用法

在上一节课我们通过实例了解了 Scrapy 的基本使用方法,在这个过程中,我们用到了 Spider 来编写爬虫逻辑,同时用到了一些选择器来对结果进行选择。在这一节课,我们就对 Spider 和 Selector 的基本用法作一个总结。Spider 的用法在 Scrapy 中,要抓取网站的链接配置、抓取逻辑、解析逻辑等其实都是在 Spider 中配置的。在前一节课的实例中,我们发现抓取逻辑也是在 Spider 中完成的。本节课我们就来专门了解一下 Spider 的基本用法。Spider 运行流程在实

2021-01-05 16:13:05 113

转载 第45讲:哪都能存,Item Pipeline 的用法

在前面的示例中我们已经了解了 Item Pipeline 项目管道的基本概念,本节课我们就深入详细讲解它的用法。首先我们看看 Item Pipeline 在 Scrapy 中的架构,如图所示。图中的最左侧即为 Item Pipeline,它的调用发生在 Spider 产生 Item 之后。当 Spider 解析完 Response 之后,Item 就会传递到 Item Pipeline,被定义的 Item Pipeline 组件会顺次调用,完成一连串的处理过程,比如数据清洗、存储等。它的主要功能有:

2021-01-05 16:12:34 111

转载 第44讲:scrapy中间键Middleware的使用

我们在 Scrapy 架构中,可以看到有一个叫作 Middleware 的概念,中文翻译过来就叫作中间件,在 Scrapy 中有两种 Middleware,一种是 Spider Middleware,另一种是 Downloader Middleware,本节课我们分别来介绍下。Spider Middleware 的用法Spider Middleware 是介入 Scrapy 的 Spider 处理机制的钩子框架。当 Downloader 生成 Response 之后,Response 会被发送给 Sp

2021-01-04 20:02:24 135

原创 前端chrome浏览器调试总结

1.前言因为是自己做python爬虫开发的,经常会做一些js逆向分析,无奈前端 js调试玩不转,所以转载学习前辈博客,方便以后自己查阅!2.调试工具先来看这张图最上头的一行是一个功能菜单,每一个菜单都有它相应的功能和使用方法,依次从左往右来看:2.1 箭头按钮:用于在页面选择一个元素来审查和查看它的相关信息,当我们在Elements这个按钮页面下点击某个Dom元素时,箭头按钮会变成选择状态2.2设备图标:点击它可以切换到不同的终端进行开发模式,移动端和pc端的一个切换,可以选择不同的移动终端

2020-11-09 23:08:04 78

原创 MySQL中B-tree索引和Hash索引区别

在MySQL文档里,实际上是把B+树索引写成了BTREE,例如像下面这样的写法:CREATE TABLE t( aid int unsigned not null auto_increment, userid int unsigned not null default 0, username varchar(20) not null default ‘’, detail varchar(255) not null default ‘’, primary key(aid), uniq

2020-11-07 20:23:50 45

原创 python logging日志模块的使用

1.日志级别日志一共分成5个等级,从低到高分别是:DEBUG ,INFO, WARNING ,ERROR, CRITICAL。DEBUG:详细的信息,通常只出现在诊断问题上INFO:确认一切按预期运行WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。ERROR:更严重的问题,软件没能执行一些功能CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行这5个等级,也分别对应5种打日志的方法: debug

2020-11-07 19:30:25 65

原创 Python 实例方法,类方法和静态方法的区别

在 Python 中,实例方法(instance method),类方法(class method)与静态方法(static method)经常容易混淆。本文通过代码例子来说明它们的区别。1.实例方法Python 的实例方法用得最多,也最常见。我们先来看 Python 的实例方法。class Kls(object): def __init__(self, data): self.data = data def printd(self): print(s

2020-11-07 18:55:26 477

原创 mysql 存在则更新,不存在则插入

mysql语法支持如果数据存在则更新,不存在则插入。首先判断数据存在还是不存在的那个字段要设置成unique索引。1.ON DUPLICATE KEY UPDATE语法如下:NSERT INTO 表名(唯一索引列, 列2, 列3) VALUE(值1, 值2, 值3) ON DUPLICATE KEY UPDATE 列=值, 列=值举例,有表tb_addrbook如下:mysql> show create table tb_addrbook;+-------------+---------

2020-11-07 18:39:02 77

原创 MongoDB索引原理和具体使用

1. MongoDB 索引是用来干嘛?索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构简单举例分析下:假设这里有一个 commits 集合,我们想要查询其中的数据!db.commits.f

2020-11-01 14:50:30 47

原创 python操作redis用法详解

1.简单介绍安装redispip install redisRedis是一个基于内存的高效的键值型非关系型数据库,存取效率极高,而且支持多种存储数据结构,使用也非常简单。本节中,我们就来介绍一下Python的Redis操作。redis提供两个类Redis和StrictRedis来实现Redis的命令操作。StrictRedis实现了绝大部分官方的命令,参数也一一对应,比如set()方法就对应Redis命令的set方法。而Redis是StrictRedis的子类,它的主要功能是用于向后兼容旧版本库

2020-11-01 14:09:07 89

原创 scrapy 解决Redirecting 301 302重定向问题

在使用Scrapy框架中URl被重定向,总是遇到这类问题:DEBUG: Redirecting (301/302) to <GET https://XXXX refer https://XXXX>解决方式:在Scrapy中的Request中添加 dont_filter=True,因为Scrapy是默认过滤掉重复的请求URL,添加上参数之后即使被重定向了也能请求到正常的数据了。在Scrapy框架中的 settings.py文件里添加HTTPERROR_ALLOWED_COD

2020-10-25 23:20:58 676

原创 git 撤销文件的修改(checkout/reset )

使用 git 撤销某个文件的修改,分为两种情况:情况1:在工作区已修改,但并未提交到暂存区(即并没有add)撤销单个文件修改,使用下面命令:$ git checkout -- 文件名若想撤销工作区中所有文件的修改,则$ git checkout .注意:git chekcout 是让文件回到最近一次该文件git commit或git add时的状态。2.工作区修改了之后,提交到了暂存区(即add),如何撤销修改?这里也分为两种情况:2.1 对于该文件来说,还没有commit过一次。这时

2020-10-25 23:03:05 236

原创 使用git remote提交代码

git remote上传本地代码到远程仓库:第一次上传本地代码,可以按照如下流程:1. git init # 初始化本地代码仓库2. git checkout -b develop # 创建并切换到develop分支3. git remote add origin httpxxxx # 关联远程仓库4. git add . # 添加工作区的代码到缓存区5. git commit -m "v1.0" # 提交代码 说明提交信息6. git pull --rebase origi

2020-10-25 22:43:27 59

原创 docker下安装Pillow模块

相信你们肯定跟我一样苦恼,docker下面咋安装pillow模块。在网上苦苦搜寻, 终于在stackoverflow找到了答案, 原来是缺少依赖包https://stackoverflow.com/questions/44043906/the-headers-or-library-files-could-not-be-found-for-jpeg-installing-pillow-on/44044479#44044479解决办法:在dockerfile 文件中加入下面的代码:FROM pytho

2020-10-17 16:29:16 70 2

原创 python time,datetime当前时间,昨天时间,时间戳和字符串的转化

由于在使用经常会用到time 模块,所以把经常使用到方法记录下来。首先把所有需要用到的模块导入进来:import time, datetime1.当前时间-时间戳# 当前时间戳current_time = time.time()print("当前时间戳为:", current_time)当前时间戳为: 1602919668.5688092.当前时间,13位时间戳print(round(time.time()*1000)) #15946093883181602920442468

2020-10-17 16:03:43 237

原创 scrapy去重原理,scrapy_redis去重原理和布隆过滤器的使用

1.去重的应用场景:如果你只是做一些简单的爬虫,可能不会遇到这种问题,可是如果你正在做一个大型的全站爬虫,或是一个持久化的爬虫,那你一定会遇到这样的问题:刚开始爬虫速度还可以,随着待爬取的队列达到数亿级甚至更多的时候,爬虫会变得非常慢,为什么会出现这样的问题呢? 我们以scrapy为例来说明并解决这个问题。2.scrapy去重原理Scrapy 有自动去重功能,它的去重使用了 Python 中的集合。这个集合记录了 Scrapy 中每个 Request 的指纹,这个指纹实际上就是 Request 的散列

2020-10-17 14:35:42 185

原创 Scrapy发送POST请求

不推荐使用scrapy框架发送post请求,配置复杂,如果在数据量大 的情况下,可以通过如下代码来实现:方法一:就是重写scrapy下面的start_requests方法scrapy默认发送的是get请求,发送post请求时需要重写start_requests(self)。import scrapyclass FySpider(scrapy.Spider): name = 'fy' # allowed_domains = ['www.baidu.com'] start_ur

2020-10-15 22:42:09 233

贾志刚+OpenCV图像处理教程-课程配套源代码.7z

贾志刚+OpenCV图像处理教程-课程配套源代码

2019-05-16

OpenCV入门教程.7z

pdf文档已经被压缩了,下载下来解压缩就可以了。

2019-05-16

OpenCV官方教程中文版(For Python).7z

pdf版本的书籍,已经压缩。下载下来,解压缩

2019-05-16

精通黑客编程完整版

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-24

Vim手册中文版7.2

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-24

Linux命令大全

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-24

学生管理系统 c语言

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-24

《Python CookBook》第三版中文

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-24

算法图解,数据结构

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-23

冰点文库绿色版(下载百度文库)

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-23

PYTHON面向对象编程指南+(美)STEVEN+F.LOTT著;

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-22

Python灰帽子-黑客与逆向工程师的Python编程之道Python灰帽子-黑客与逆向工程师的Python编程之道

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-22

笨方法学习pythn 第四版

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-22

FlaskWeb开发:基于Python的Web应用开发实战

下载完使用好压解压缩。资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-22

C语言 数据结构,严蔚敏

资源是个人收藏,仅用于学习资料,如果有侵权,请联系管理删除

2018-11-22

pdf转换word

上传资源太麻烦,文档里面是百度云的下载链接。所属资源是本人的收藏,如果有侵权,请联系管理员删除

2018-11-22

空空如也

空空如也

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

TA关注的人 TA的粉丝

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