商品详情
内容全面,系统讲解爬虫知识。 详细介绍了爬虫与反爬虫的方法。 提供了多个较高应用价值的爬虫实战案例,具有较强的应用性。
本书主要介绍了反爬虫的相关技术,内容涵盖了爬虫工具、加密算法、App爬虫等,从理论到案例实践,深入浅出。本书详细讲解了常用的抓包工具、反爬虫机制、验证码识别、动态网页反爬虫、JavaScript文件处理。本书聚焦加密数据的破解、App应用爬虫以及破解方法、部署爬虫程序。对于以上内容,本书进行细分总结,将相关知识点都纳入其中,形成一套完整的体系。本书适合Python爱好者、爬虫工程师、数据分析师,以及高等院校计算机科学技术、软件工程、网络工程等相关专业的师生。
任杰麟 硕士研究生学历,从事 Python、Java 方向的技术研发,拥有超过十五年的社交、金融、石油行业开发经验,始终战斗在编码第一线,平时喜欢钻研开源技术和数学。负责过石油领域数据分析的开发,以及人工智能的开发工作,长期担任数据爬取与数据分析的项目负责人,对网络爬虫和反爬虫有着较多的应用和感悟。
第1章 无处不在的反爬虫/1.1学习反爬虫的理由/1.1.1反爬虫的定义/1.1.2反爬虫对信息的保护/1.1.3防止恶意竞争与知识产权侵犯/1.1.4反爬虫对网站的维护/1.1.5爬虫与反爬虫的相爱相杀:反爬虫对抗爬虫/1.2什么样的爬虫会被反爬呢?/1.2.1;裸体爬虫/1.2.2;索取无度的爬虫/1.2.3;不守规定的爬虫/1.3爬虫程序员的噩梦:多种多样的反爬虫机制/1.3.1基于IP反爬虫:封锁IP/1.3.2基于request headers反爬虫:检查;身份证/1.3.3基于用户行为的反爬虫/1.3.4动态页面的反爬虫/1.3.5登录限制(cookie限制)/1.3.6验证码限制/1.3.7JavaScript加密/1.3.8文本混淆反爬虫:从根本上伪装信息/1.4本章小结 /第2章抓包利器的使用/2.1抓包/2.1.1什么是抓包?/2.1.2抓包的意义/2.1.3HTTP的抓包原理/2.1.4HTTPS的抓包原理/2.1.5常见抓包工具的对比/2.2抓包工具Charles的使用/2.2.1什么是Charles?/2.2.2Charles的抓包原理/2.2.3Charles的配置/2.2.4使用Charles对网站进行抓包/2.2.5使用Charles对App进行抓包/2.3抓包工具Fiddler的使用/2.3.1Fiddler简介/2.3.2Fiddler与Charles的区别/2.3.3Fiddler证书的安装/2.3.4Fiddler的使用/2.4抓包工具Mitmproxy的使用/2.4.1Mitmproxy简介/2.4.2Mitmproxy的工作原理/2.4.3Mitmproxy的工作模式/2.4.4Mitmproxy的使用/2.5抓包工具Wireshark的使用/2.5.1Wireshark简介/2.5.2Wireshark与Fiddler的区别/2.5.3Wireshark的使用/2.6本章小结 /第3章信息校验型反爬虫/3.1信息校验反爬虫概述/3.1.1信息校验反爬虫的原理/3.1.2信息校验反爬虫的常见类型/3.2useragent反爬虫/3.2.1什么是UA?/3.2.2UA的改变方法/3.3cookie反爬虫/3.3.1HTTP机制/3.3.2cookie的作用/3.3.3session和cookie的关系/3.4Referer反爬虫/3.4.1Referer的意义/3.4.2Referer的破解方法/3.5签名验证反爬虫/3.5.1签名验证的原理/3.5.2签名验证的破解/3.6本章小结 /第4章验证码识别/4.1什么是验证码?/4.1.1验证码原理/4.1.2验证码的应用/4.1.3验证码分类/4.2图像识别技术/4.2.1图像识别技术的基础知识/4.2.2什么是OCR?/4.2.3OCR原理/4.2.4什么是Tesseract?/4.3打码平台的使用/4.3.1什么是打码平台?/4.3.2如何使用打码平台/4.4验证码爬虫案例/4.4.1分析测试网站/4.4.2实现模拟登录/4.4.3核心代码/4.5本章小结 /第5章模拟登录/5.1requests模拟登录/5.1.1requests的基础操作/5.1.2get请求方式/5.1.3cookie的使用/5.1.4post请求方式/5.1.5get请求失败的案例/5.2selenium模拟登录/5.2.1什么是selenium?/5.2.2安装selenium及驱动/5.2.3网页结构与xpath简介/5.2.4selenium的元素定位/5.2.5使用selenium进行交互/5.2.6使用selenium进行模拟登录/5.3案例selenium 验证码模拟登录/5.3.1原理分析/5.3.2获取验证码图片/5.3.3实现selenium 验证码模拟登录/5.3.4核心代码/深入解析Python反爬虫5.4本章小结 /第6章搭建IP代理池爬虫/6.1IP的基础知识/6.1.1IP地址的简述/6.1.2什么是IPv4?/6.1.3什么是IPv6?/6.1.4IPv4与IPv6的对比/6.2IP封锁/6.2.1IP封锁反爬虫的基本原理/6.2.2IP封锁的影响/6.3如何突破IP封锁/6.3.1降低爬虫性能设置休眠时间/6.3.2使用IP代理/6.4IP代理/6.4.1什么是IP代理?/6.4.2为什么要进行IP代理?/6.5IP代理池/6.5.1实现IP代理/6.5.2如何构建IP代理池/6.6案例1urllib的IP代理/6.6.1代码简述/6.6.2完整代码/6.7案例2构建IP代理池/6.7.1代理网站分析/6.7.2代理IP获取/6.7.3代理IP检测与保存/6.7.4完整代码/6.8本章小结 /第7章针对动态渲染页面的反爬/7.1动态渲染网页的原理/7.1.1静态页面和动态页面/7.1.2JavaScript实现渲染的简单原理/7.2动态渲染实现的方式/7.2.1自动执行的异步请求/7.2.2点击事件和计数/7.2.3下拉加载和异步请求/7.3解决动态渲染的反爬工具/7.3.1selenium/7.3.2puppeteer/7.3.3Splash/7.4案例爬取漫画网漫画数据/7.4.1动态渲染网页分析/7.4.2实战爬取漫画网的漫画数据/7.5本章小结 /第8章JavaScript解析/8.1网页基础前端三剑客/8.1.1HTML网站的骨骼/8.1.2CSS网站的皮肤/8.1.3JavaScript网站的行为/8.1.4JavaScript的基础知识/8.2开发者工具/8.2.1开发者工具简介/8.2.2模块介绍/8.3如何找到JavaScript文件?/8.3.1为什么要找JavaScript文件?/8.3.2通过initiator定位JavaScript文件/8.3.3通过search定位JavaScript文件/8.3.4通过元素绑定的事件监听函数定位JavaScript文件/8.4js2Py库/8.4.1js2Py的作用/8.4.2js2Py的使用/8.5案例翻译网站破解/8.5.1案例目的/8.5.2案例分析/8.5.3案例实现/8.6本章小结 /第9章文本混淆反爬虫/9.1图片伪装反爬虫/9.1.1实现原理/9.1.2图片伪装的案例/9.1.3代码实现破解图片伪装反爬虫/9.2CSS偏移反爬虫/9.2.1实现原理/9.2.2CSS偏移反爬虫案例/9.2.3代码实现破解CSS偏移反爬虫/9.3SVG映射反爬虫/9.3.1什么是SVG映射/9.3.2SVG图反爬原理/9.3.3代码实现破解SVG映射反爬虫/9.4案例:爬取SVG相关网站/9.5pytesseract的安装方法/9.6本章小结 /第10章逆向加密/10.1MD5算法剖析/10.1.1什么是MD5算法?/10.1.2MD5的加密和解密过程/10.2对称加密算法和非对称加密算法/10.2.1对称加密算法/10.2.2非对称加密算法/10.3Base64伪加密/10.3.1什么是Base64?/10.3.2Base64加密与解密/10.4HTTPS和证书/10.4.1HTTPS的加密方式/10.4.2证书的作用/10.5本章小结 /第11章App爬虫/11.1Python爬取手机App的数据/11.2什么是Appium?/11.3如何安装Appium/11.3.1安装JDK并配置其环境/11.3.2配置Android开发环境,安装Android SDK/11.3.3Node.js和Appium的安装/11.3.4安装Appium Desktop和Appium inspector/11.3.5安装Python驱动/11.4Appium的使用/11.5本章小结 /第12章爬虫部署/12.1了解Docker/12.1.1什么是Docker?/12.1.2使用Docker的优势/12.1.3Windows与Linux的对比/12.1.4在Windows系统上安装下载Docker/12.1.5Docker的基本概念/12.1.6Docker和虚拟机/12.2Docker配置Python程序/12.2.1Python程序/12.2.2Dockerfile文件/12.2.3配置Python程序/12.2.4查看是否生成镜像/12.2.5运行Python项目/12.3Docker的基础使用/12.3.1操作Docker/12.3.2对镜像进行基础操作/12.3.3拉取与删除镜像/12.3.4加载镜像/12.3.5使用交互式容器/12.4本章小结
【前言】本书背景这是一个数据量爆发式增长的互联网时代,不管是企业还是个人,工作中都会使用到大量的数据。例如:对手企业商品的优点、价格,客户的兴趣爱好,当前流行的事物、语言等。而如果还是像普通用户一样访问数据,再复制粘贴,一个个将数据写入文档中,最后再进行分析统计,这无疑会浪费大量的时间和精力。而爬虫技术能自动搜集网络上的相关数据,还可以将获取的数据自动进行分析整合。所以,爬虫是快速获取数据的重要方式。但数据的拥有者肯定不希望自己的数据被随意爬取。而且爬虫也会占用服务器的资源,导致正常用户的访问变得困难。这些原因导致反爬虫这一机制出现了,它在数据的周围建立起了高墙,还在墙上挂上了照妖镜,用来区分普通用户和爬虫,这使得爬虫会在数据的城墙下被识别出来,并被拒绝进入其中。甚至有的机制将爬虫识别出来后,并不揭露爬虫的身份,而是将其放入城中,引入提前设置好的陷阱之中。网站开发者为了保证网站能够正常运转和降低服务器的运营成本,会通过一些手段限制爬虫的访问。限制爬虫程序访问服务器资源和获取数据的行为称为反爬虫。限制手段包括但不限于请求限制、拒绝响应、客户端身份验证、文本混淆和使用动态渲染技术。简单地说,网站会运用不同方法对访问者的身份进行验证,来识别是否是爬虫,进而决定是否限制访问。网站也会采用动态加载网页、数据通过JavaScript加载等方法,来增大数据分析处理的难度。同时,网站还会增大网络分析难度,使爬虫程序抓取URL失败,导致异常。本书主要内容通过上网搜索可以发现,反爬虫的知识点是非常凌乱的。一篇博客文章讲述如何设置代理IP,并构建代理IP池来进行反爬虫;而另一篇博客文章只讲解基于headers字段的useragent和cookie的反爬虫机制。与其他知识学习相比,反爬虫没有一个比较系统的知识体系。东一点,西一点,很难形成系统的知识体系,不利于我们掌握这方面的知识。并且随着爬虫技术的提升,反爬虫技术也在逐渐进步,这个进步不是基于某一个方向的,可能这一次是在限制IP访问的次数与时间,下一次就是对JavaScript文件进行隐藏加密了。所以反爬虫的资料是相当零散的,很多人都只总结了某一方面的反爬虫知识,而没有系统的整体的反爬虫知识体系。我想,既然网络上没有一个系统的反爬虫知识结构,那何不自己构建一个呢?深入解析Python反爬虫本书将反爬虫知识分为三大部分:前置知识、爬虫知识和反爬虫知识。前置知识:这方面的内容包括后面学习需要用到的其他方面的知识,例如:前端知识,什么是HTML,CSS的作用是什么,JavaScript又有怎样的作用;计算机网络知识,什么是URL,网络是怎样发送请求的,GET和POST请求的区别,发送的请求包含哪些数据,HTTP协议的功能与作用,响应返回的状态码的含义,HTTPS是怎么完成数据加密的。爬虫知识:在这一方面,哪需要知道一个爬虫程序是如何生成的,需要用到的Python模块以及模块的具体使用方法。如何构建一个请求;请求得到的数据怎么进行解析以获取想要的子数据;正则表达式在其中的作用;以及如何将获取的数据保存在本地;形成一个文件,或是构成数据库,而不是只将数据打印在控制台中。反爬虫知识:前面已经说过了,这方面的知识非常凌乱,需要将这些零散的知识点进行分类整理,形成一个系统的整体。这方面常用的抓包工具有哪些;哪些反爬虫机制属于信息校验型反爬虫;验证码反爬虫是怎样破解的;哪些机制属于动态网页的反爬虫;JavaScript文件应该如何处理;当抓取的文本与实际文本有差别时应该怎么办;加密的数据应该如何破解;当要抓取的数据在一个App应用中,应该如何对App应用进行爬虫以及破解它的反爬虫的方法;怎么部署一个爬虫。以上这些知识可以细分,将相关知识点都纳入其中,形成一个完整教程。在学习爬虫这方面,实操是避免不了的。只有经过实际操作,才能真正掌握这方面的知识。其实在学习反爬虫的种类及机制时,就可以学习相应的破解技术。每学完一个反爬虫技术,就爬取一个应用该技术的网页,做到边学边练。这样我们的爬虫技术就会越来越强,在今后爬取某一陌生网页时,可以先对网页进行分析,了解我们需要的数据放在哪里,其应用了哪些反爬虫的机制、数据是否加密等,从而来构建我们的爬虫框架,再根据实际的爬虫情况来完善爬虫程序,完成对一个网页的数据爬取。同时还需要注意,掌握了爬虫技术之后,并不是什么数据都可以爬取,抓取到的数据并非就是我们自己的了。应该了解什么样的爬虫是犯法的。像爬取公民身份信息,就属于侵犯了公民隐私权,这是肯定不允许的。而且我们爬取的数据都是别人的,千万不要到处传播,做出违法的事。本书特色 内容全面,系统讲解爬虫知识。 详细介绍了爬虫与反爬虫的方法。 提供了多个较高应用价值的爬虫实战案例,具有较强的应用性。致谢与勘误本书的出版汇集了多人的辛勤付出,感谢家人的鼓励与支持。作者特别感谢机械工业出版社的张淑谦老师,他对本书的出版给予了大力支持,提供了很多宝贵意见。限于作者的学识水平,本书难免存在不足和疏漏之处,敬请读者批评指正。
- 新华一城书集 (微信公众号认证)
- 上海新华书店官方微信书店
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...