自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸡小白的成长记录

菜鸡小白的成长记录

  • 博客(42)
  • 资源 (16)
  • 收藏
  • 关注

转载 第50讲:Scrapy 部署不用愁,Scrapyd 的原理和使用

上节课我们的分布式爬虫部署完成并可以成功运行了,但是有个环节非常烦琐,那就是代码部署。我们设想下面的几个场景:如果采用上传文件的方式部署代码,我们首先需要将代码压缩,然后采用 SFTP 或 FTP 的方式将文件上传到服务器,之后再连接服务器将文件解压,每个服务器都需要这样配置。如果采用 Git 同步的方式部署代码,我们可以先把代码 Push 到某个 Git 仓库里,然后再远程连接各台主机执行 Pull 操作,同步代码,每个服务器同样需要做一次操作。如果代码突然有更新,那我们必须更新每个服

2021-01-19 21:14:37 4869

转载 第27讲:令人抓狂的 JavaScript 混淆技术

我们在爬取网站的时候,经常会遇到各种各样类似加密的情形,比如:某个网站的 URL 带有一些看不懂的长串加密参数,想要抓取就必须要懂得这些参数是怎么构造的,否则我们连完整的 URL 都构造不出来,更不用说爬取了。分析某个网站的 Ajax 接口的时候,可以看到接口的一些参数也是加密的,或者 Request Headers 里面也可能带有一些加密参数,如果不知道这些参数的具体构造逻辑就无法直接用程序来模拟这些 Ajax 请求。翻看网站的 JavaScript 源代码,可以发现很多压缩了或者看不太懂的字符,

2021-01-19 21:14:14 2960 3

转载 第23讲:利用资源,学会用打码平台处理验证码

在前一课时我们介绍了多种多样的验证码,有图形文字的、有模拟点选的、有拖动滑动的,但其实归根结底都需要人来对某种情形做一些判断,然后把结果返回并提交。如果此时提交的验证码结果是正确的,并且通过了一些验证码的检测,就能成功突破这个验证码了。那么,既然验证码就是让人来识别的,那么机器怎么办呢?如果我们也不会什么算法,怎么去解这些验证码呢?此时如果有一个帮助我们来识别验证码的工具或平台就好了,让工具或平台把验证码识别的结果返回给我们,我们拿着结果提交,那不就好了吗?有这种工具或平台吗?还真有专门的打码平台帮助我

2021-01-19 21:13:56 1019 1

转载 第35讲:Xposed+模拟器的详细使用

如果你对逆向有所涉猎的话,可能听说过 Hook,利用 Hook 技术我们可以在某一逻辑的前后加入自定义的逻辑处理代码,几乎可以实现任意逻辑的修改。在前面的 JavaScript 逆向实战课时我们也初步体会了 Hook 的功效,如果你对 Hook 的概念还不太了解,可以搜索一下“Hook 技术”相关的内容来了解下。对于 App 来说,Hook 技术应用非常广泛。比如朋友圈微信步数的修改,其实就是通过 Hook 数据发送的方式实现步数的修改。比如处理安卓的 SSL Pining,用 Hook 技术也可以修改

2021-01-19 21:13:35 4059

转载 第22讲:验证码反爬虫的基本原理

我们在浏览网站的时候经常会遇到各种各样的验证码,在多数情况下这些验证码会出现在登录账号的时候,也可能会出现在访问页面的过程中,严格来说,这些行为都算验证码反爬虫。本课时我们就来介绍下验证码反爬虫的基本原理及常见的验证码和解决方案。验证码验证码,全称叫作 Completely Automated Public Turing test to tell Computers and Humans Apart,意思是全自动区分计算机和人类的图灵测试,取了它们关键词的首字母变成了 CAPTCHA,它是一种用来区分

2021-01-19 19:26:20 1387

转载 第01讲:必知必会,掌握 HTTP 基本原理

1.URI 和 URL首先,我们来了解一下 URI 和 URL,URI 的全称为 Uniform Resource Identifier,即统一资源标志符,URL 的全称为 Universal Resource Locator,即统一资源定位符。举例来说,https://github.com/favicon.ico,它是一个 URL,也是一个 URI。即有这样的一个图标资源,我们用 URL/URI 来唯一指定了它的访问方式,这其中包括了访问协议 HTTPS、访问路径(即根目录)和资源名称 favicon

2021-01-19 19:25:43 885 2

转载 第03讲. 原理探究,了解爬虫的基本原理

1.爬虫概述我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛。如果把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被抓取下来了。简单来说,爬虫就是获取网页并提取和保存信息的自动化程序,下面概要介绍一下。2.获取网页爬虫首先要做的工作就是获取网页,这里就是获

2021-01-19 19:25:26 388 1

转载 第04讲: 基础探究,Session 与 Cookies

我们在浏览网站的过程中,经常会遇到需要登录的情况,而有些网页只有登录之后才可以访问,而且登录之后可以连续访问很多次网站,但是有时候过一段时间就需要重新登录。还有一些网站,在打开浏览器时就自动登录了,而且很长时间都不会失效,这种情况又是为什么?其实这里面涉及 Session 和 Cookies 的相关知识,本节就来揭开它们的神秘面纱。1.静态网页和动态网页在开始介绍它们之前,我们需要先了解一下静态网页和动态网页的概念。这里还是前面的示例代码,内容如下:<!DOCTYPE html>&lt

2021-01-19 19:25:09 446 2

转载 第34讲:更好用的自动化工具 airtest 的使用

在上一节课我们了解了 Appium 的用法,利用 Appium 可以方便地完成 App 的自动化控制,但在使用过程中或多或少还会有些不方便的地方,比如响应速度慢,提供的 API 功能有限等。本课时我们再介绍另外一个更好用的自动化测试工具,叫作 airtest,它提供了一些更好用的 API,同时提供了非常强大的 IDE,开发效率和响应速度相比 Appium 也有提升。1.Airtest 概况AirtestProject 是由网易游戏推出的一款自动化测试框架,项目构成如下。Airtest:是一个跨平台

2021-01-19 19:24:43 1751

转载 第46讲:遇到动态页面怎么办?详解渲染页面爬取

前面我们已经介绍了 Scrapy 的一些常见用法,包括服务端渲染页面的抓取和 API 的抓取,Scrapy 发起 Request 之后,返回的 Response 里面就包含了想要的结果。但是现在越来越多的网页都已经演变为 SPA 页面,其页面在浏览器中呈现的结果是经过 JavaScript 渲染得到的,如果我们使用 Scrapy 直接对其进行抓取的话,其结果和使用 requests 没有什么区别。那我们真的要使用 Scrapy 完成对 JavaScript 渲染页面的抓取应该怎么办呢?之前我们介绍了

2021-01-19 19:24:26 1103 5

转载 第47讲:scrapy-redis分布式爬虫介绍

我们在前面几节课了解了 Scrapy 爬虫框架的用法。但这些框架都是在同一台主机上运行的,爬取效率比较低。如果能够实现多台主机协同爬取,那么爬取效率必然会成倍增长,这就是分布式爬虫的优势。接下来我们就来了解一下分布式爬虫的基本原理,以及 Scrapy 实现分布式爬虫的流程。我们在前面已经实现了 Scrapy 基本的爬虫功能,虽然爬虫是异步加多线程的,但是我们却只能在一台主机上运行,所以爬取效率还是有限的,而分布式爬虫则是将多台主机组合起来,共同完成一个爬取任务,这将大大提高爬取的效率。1.分布式爬虫架

2021-01-19 19:24:08 548

转载 第12讲:Ajax 的原理和解析

当我们在用 requests 抓取页面的时候,得到的结果可能会和在浏览器中看到的不一样:在浏览器中正常显示的页面数据,使用 requests 却没有得到结果。这是因为 requests 获取的都是原始 HTML 文档,而浏览器中的页面则是经过 JavaScript 数据处理后生成的结果。这些数据的来源有多种,可能是通过 Ajax 加载的,可能是包含在 HTML 文档中的,也可能是经过 JavaScript 和特定算法计算后生成的。对于第 1 种情况,数据加载是一种异步加载方式,原始页面不会包含某些数据,只

2021-01-19 19:23:25 699

转载 第13讲:Ajax 爬取案例实战

上一课时我们学习了 Ajax 的基本原理和分析方法,这一课时我们结合实际案例,学习 Ajax 分析和爬取页面的具体实现。准备工作在开始学习之前,我们需要做好如下的准备工作:安装好 Python 3(最低为 3.6 版本),并能成功运行 Python 3 程序。了解 Python HTTP 请求库 requests 的基本用法。了解 Ajax 的基础知识和分析 Ajax 的基本方法。以上内容在前面的课时中均有讲解,如你尚未准备好建议先熟悉一下这些内容。爬取目标本课时我们以一个动态渲染网站为

2021-01-19 19:23:09 687 2

转载 第49讲:实战上手,Scrapy-Redis 分布式实现

在前面一节课我们了解了 Scrapy-Redis 的基本原理,本节课我们就结合之前的案例实现基于 Scrapy-Redis 的分布式爬虫吧。1.环境准备本节案例我们基于第 46 讲 —— Scrapy 和 Pyppeteer 的动态渲染页面的抓取案例来进行学习,我们需要把它改写成基于 Redis 的分布式爬虫。首先我们需要把代码下载下来,其 GitHub 地址为 https://github.com/Python3WebSpider/ScrapyPyppeteer,进入项目,试着运行代码确保可以顺利执

2021-01-19 19:22:51 462

转载 第09讲:爬虫解析利器 PyQuery 的使用

上一课时我们学习了正则表达式的基本用法,然而一旦你的正则表达式写法有问题,我们就无法获取需要的信息。你可能会思考:每个网页,都有一定的特殊结构和层级关系,而且很多节点都有 id 或 class 作为区分,我们可以借助它们的结构和属性来提取信息吗?这的确可行。这个课时我会为你介绍一个更加强大的 HTML 解析库:pyquery。利用它,我们可以直接解析 DOM 节点的结构,并通过 DOM 节点的一些属性快速进行内容提取。接下来,我们就来感受一下 pyquery 的强大之处。准备工作pyquery 是

2021-01-19 19:22:32 542 1

转载 第11讲:Reqeusts + PyQuery + PyMongo 基本案例实战

在前面我们已经学习了多进程、requests、正则表达式、pyquery、PyMongo 等的基本用法,但我们还没有完整地实现一个爬取案例。本课时,我们就来实现一个完整的网站爬虫案例,把前面学习的知识点串联起来,同时加深对这些知识点的理解。准备工作在本节课开始之前,我们需要做好如下的准备工作:安装好 Python3(最低为 3.6 版本),并能成功运行 Python3 程序。了解 Python 多进程的基本原理。了解 Python HTTP 请求库 requests 的基本用法。了解正则表达式

2021-01-19 19:22:15 458

转载 第19讲:Pyppeteer 爬取实战

在上一课时我们了解了 Pyppeteer 的基本用法,确实我们可以发现其相比 Selenium 有很多方便之处。本课时我们就来使用 Pyppeteer 针对之前的 Selenium 案例做一次改写,来体会一下二者的不同之处,同时也加强一下对 Pyppeteer 的理解和掌握情况。1.爬取目标本课时我们要爬取的目标和之前是一样的,还是 Selenium 的那个案例,地址为:https://dynamic2.scrape.cuiqingcai.com/,如下图所示。这个网站的每个详情页的 URL 都是

2021-01-19 19:21:52 1953

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

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

2021-01-13 11:38:21 1391

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

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

2021-01-13 11:38:01 529

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

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

2021-01-13 11:37:31 1292

转载 第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 753

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

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

2021-01-13 11:36:48 8592 4

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

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

2021-01-13 11:36:22 7111 4

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

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

2021-01-13 11:35:53 2375

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

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

2021-01-11 16:42:47 1893 14

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

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

2021-01-11 16:42:04 5223

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

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

2021-01-11 16:41:28 816

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

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

2021-01-11 16:40:31 3753

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

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

2021-01-11 15:42:36 747

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

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

2021-01-11 15:42:05 779

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

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

2021-01-11 14:08:29 521

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

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

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

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

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

2021-01-11 14:06:47 381

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

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

2021-01-11 14:04:08 640

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

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

2021-01-11 14:03:38 10276 3

转载 第15讲:Selenium 爬取实战

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

2021-01-11 14:03:03 1743

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

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

2021-01-11 14:02:26 450 1

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

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

2021-01-07 16:28:20 371

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

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

2021-01-07 16:27:57 484

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

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

2021-01-05 16:13:05 1088

贾志刚+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关注的人

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