网络爬虫开发实战2和一的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络爬虫开发实战2和一的区别相关的知识,希望对你有一定的参考价值。
网络爬虫开发实战2和一的区别Python3 网络爬虫开发实战(第二版)》已经上架了!!!!
之前我写的第一版的爬虫书《Python3网络爬虫开发实战》在 2018 年出版,上市三年来,一直处于市面上所有爬虫书的销冠位置,豆瓣评分 9.0 分,销量 10w 册。
如今,这本书现在又进一步做了升级,第二版将案例进行了全面升级,自建了案例平台防止代码过期,同时增加了非常多的新技术、新知识的介绍,比如异步爬虫、javascript 逆向、安卓逆向、Kubernetes、智能解析。
容我小小自荐一下:目前市面上的爬虫书,其他的书跟我的书相比,内容方面我的算是最全的,没有之一。能将最前沿的爬虫技术比如异步、JavaScript 逆向、安卓逆向、智能解析、WebAssembly、Kubernetes 等技术都涵盖的,目前应该就是本新发布的《Python3网络爬虫开发实战(第二版)》了。
没错,就是这本:
2018 年 5 月我的《Python3 网络爬虫开发实战》的第一版出版,从上市到现在三年多销量约 10w 册,真的非常感谢各位读者的支持。后来,由于一些技术更迭,我开始策划编写本书的第二版。
2021 年11月,这本书历经各种反复修改、审稿等阶段,到今天终于上架了!
这几个月我收到了太多读者的询问,第二版什么时候出来,真的抱歉实在是让大家久等了。
没错,就是今天,它来了!
第二版更新内容
大家第一个问题可能就会问,第二版比第一版更新了哪些内容?
因为技术总是在不断发展和进步的,爬虫技术也是一样,它在爬虫和反爬虫不断斗争的过程中也在不断演进。比如现在越来越多的网页采取了各种防护措施,比如前端代码的压缩和混淆、API 的参数加密、WebDriver 的检测,要做到高效的数据爬取,我们就需要懂得一些 JavaScript 逆向分析相关技术。App 也是一样,App 的抓包防护、加壳保护、Native 化、风控检测使得越来越多的 App 数据难以爬取,所以我们也不得不了解一些逆向相关技术,如 Xposed、Frida、IDA Pro 等工具的使用。除此之外,近几年深度学习和人工智能发展得也是如火如荼,所以爬虫也可以和人工智能结合起来,比如基于深度学习的验证码识别、网页内容的智能化解析和提取等技术我们也可以进行学习和了解。另外,一些大规模爬虫的管理和运维技术也在不断发展,当前 Kubernetes、Docker、Prometheus 等云原生技术也非常火爆,基于 Kubernetes 等云原生技术的爬虫管理和运维解决方案也已经很受青睐。然而,之前第一版书对以上提到的这些新兴技术几乎没有提及。
除此之外,第一版书在讲解数据爬取的过程中引用了很多案例和服务,比如猫眼电影网站、淘宝网站、代理服务网站,然而几年过去了,有些案例网站和服务早已经改版或者停止维护,这就导致第一版书中的很多案例已经不能正常运行了。这其实是一个很大的问题,因为程序运行不通会大大降低学习的积极性和成就感,而且会浪费不少时间。另外,即使案例对应的爬虫代码及时更新了,那我们也不知道这些案例网站和服务什么时候会再次改版,因为这都是不可控的。所以,为了彻底解决这个问题,我花费了近半年的时间构建了一个爬虫案例平台(https://scrape.center),平台包含了几十个爬虫案例,包括服务端渲染(SSR)网站、单页面应用(SPA)网站、各类反爬网站、验证码网站、模拟登录网站、各类 App 等,覆盖了现在爬虫和反爬虫相关的大多数技术,整个平台都是我来维护的,书中几乎所有案例都是从案例平台来的,从而解决了页面改版的问题。
所以,本书相比第一版来说,更新的内容主要如下:
绝大多数都迁移到了自建的案例平台,以后再也不用担心案例有过期或改版问题。
替换了原本第一章环境安装的章节,将环境配置的部分全部汇总并迁移到案例平台(https://setup.scrape.center)并在书中以外链的形式附上,以确保环境的配置和安装说明能够被及时更新。
增加了一些新的请求库、解析库、存储库等的介绍,如 httpx、parsel、Elasticsearch 等库的介绍。
增加了异步爬虫的介绍,如协程的基本原理、aiohttp 的使用和爬取实战介绍。
增加了一些新兴自动化工具的介绍,如 Pyppeteer、Playwright 的介绍。
增加了深度学习相关内容,如图形验证码、滑动验证码的识别方案。
丰富了模拟登录章节的内容,如增加了 JWT 模拟登录的介绍和实战、大规模账号池的优化。
增加了 JavaScript 逆向的章节,包括网站加密和混淆技术、JavaScript 逆向调试技巧、JavaScript 的各种模拟执行方式、AST 还原混淆代码、WebAssembly 等相关技术的介绍。
丰富了 App 自动化爬取技术的章节,如新兴框架 Airtest 的介绍、手机群控和云手机技术的介绍。
增加了 android 逆向章节,如反编译、反汇编、Hook、脱壳、so 文件分析和模拟执行等技术的介绍。
增加了网页智能化解析章节,包括列表页、详情页内容提取算法和分类算法。
丰富了 Scrapy 相关章节的介绍,如 Pyppeteer 的对接、RabbitMQ 的对接、Prometheus 的对接等。
增加了基于 Kubernetes、Docker、Prometheus、Grafana 等云原生技术爬虫管理和运维解决方案的介绍。 参考技术A 1.浏览器提交请求->下载网页代码->解析/渲染成页面。
而爬虫程序要做的就是:
2.模拟浏览器发送请求->下载网页代码->只提取有用的数据->存放于数据库或文件中
1与2的区别在于: 我们的爬虫程序只提取网页代码中对我们有用的数据
4、爬虫
1.爬虫的定义:
向网站发起请求,获取资源后分析并提取有用数据的程序
2.爬虫的价值
互联网中最有价值的便是数据,比如天猫商城的商品信息,链家网的租房信息,雪球网的证券投资信息等等,这些数据都代表了各个行业的真金白银,可以说,谁掌握了行业内的第一手数据,谁就成了整个行业的主宰,如果把整个互联网的数据比喻为一座宝藏,那我们的爬虫课程就是来教大家如何来高效地挖掘这些宝藏,掌握了爬虫技能,你就成了所有互联网信息公司幕后的老板,换言之,它们都在免费为你提供有价值的数据。
爬虫的分类
1.通用爬虫
通用爬虫是搜索引擎(Baidu、Google、Yahoo等)"抓取系统”的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。 简单来讲就是尽可能的;把互联网上的所有的网页下载下来,放到本地服务器里形成备分,在对这些网页做相关处理(提取关键字、去掉广告),最后提供一个用户检索接口。
2.聚焦爬虫
聚焦爬虫是根据指定的需求抓取网络上指定的数据。例如:获取豆瓣上电影的名称和影评,而不是获取整张页面中所有的数据值。
2.1 robots协议
如果自己的门户网站中的指定页面中的数据不想让爬虫程序爬取到的话,那么则可以通过编写一个robots.txt的协议文件来约束爬虫程序的数据爬取。robots协议的编写格式可以观察淘宝网的robots(访问www.taobao.com/robots.txt即可)。但是需要注意的是,该协议只是相当于口头的协议,并没有使用相关技术进行强制管制,所以该协议是防君子不防小人。但是我们在学习爬虫阶段编写的爬虫程序可以暂时先忽略robots协议。 参考技术B 网络爬虫开发实战二和一的区别。网络爬虫开发很先进的,实战2和一的区别是,实战2更加先进,一比较落伍。
以上是关于网络爬虫开发实战2和一的区别的主要内容,如果未能解决你的问题,请参考以下文章
[Python3网络爬虫开发实战] 1.5.2-PyMongo的安装
[Python3网络爬虫开发实战] 1.2.4-GeckoDriver的安装
[Python3网络爬虫开发实战] 1.6.2-Tornado的安装