热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

爬虫反爬与反反爬

目录一:反爬与反反爬介绍:1:反爬的三个方向:2:基于身份识别进行反爬:3:常见基于爬虫行为进行反爬4:常见基于数据加密进行反爬:二:打码平台的使用:1:tesserate的安装:

目录

    • 一:反爬与反反爬介绍:
      • 1: 反爬的三个方向:
      • 2:基于身份识别进行反爬:
      • 3:常见基于爬虫行为进行反爬
      • 4:常见基于数据加密进行反爬:
    • 二:打码平台的使用:
      • 1:tesserate的安装:(钛色ruai特)
      • 2:图片识别的使用:
        • 2.1:图片识别引擎的使用:
        • 2.2:使用图鉴打码平台完成验证码的识别:
    • 三:chrome浏览器使用方法介绍
      • 3.1: 新建隐身窗口
      • 3.2: chrome中network的更多功能:

一:反爬与反反爬介绍:

1: 反爬的三个方向:

  • 1:基于身份识别进行反爬。
  • 2:基于爬虫行为进行反爬。
  • 3:基于数据加密进行反爬。

2:基于身份识别进行反爬:

《爬虫----反爬与反反爬》
《爬虫----反爬与反反爬》

3:常见基于爬虫行为进行反爬

《爬虫----反爬与反反爬》
《爬虫----反爬与反反爬》
《爬虫----反爬与反反爬》

4:常见基于数据加密进行反爬:

1:对响应中含有的数据进行特殊化处理:

例如:猫眼电影中的电影评分是采用特殊的样式显示。
反爬思路: 使用自有字体文件
解决思路:切换到手机版/解析字体文件进行翻译。

2:通过css来反爬 :

例如:猫眼去哪儿电脑版
反爬思路:源码数据不为真正数据,需要通过css位移才能产生真正数据
解决思路:计算css的偏移。

3 通过js动态生成数据进行反爬

反爬原理:通过js动态生成
解决思路:解析关键js,获得数据生成流程,模拟生成数据

4 通过数据图片化反爬

58同城短租](https://baise.58.com/duanzu/38018718834984x.shtml)
解决思路:通过使用图片解析引擎从图片中解析数据

5 通过编码格式进行反爬

反爬原理: 不适用默认编码格式,在获取响应之后通常爬虫使用utf-8格式进行解码,此时解码结果将会是乱码或者报错
解决思路:根据源码进行多格式解码,或者真正的解码格式

二:打码平台的使用:

1:tesserate的安装:(钛色ruai特)

特殊:

mac直接安装:
brew install –with-training-tools tesseract
linux直接安装:
sudo apt-get install tesseract-ocr

1:windows下载安装包:

https://github.com/UB-Mannheim/tesseract/wiki

《爬虫----反爬与反反爬》
《爬虫----反爬与反反爬》
《爬虫----反爬与反反爬》

2:配置环境变量:
《爬虫----反爬与反反爬》
《爬虫----反爬与反反爬》
测试运行结果:
《爬虫----反爬与反反爬》
3:安装pytesseract与pillow图片库:

pip install pillow
pip install pytesseract 从图片中解析数据

《爬虫----反爬与反反爬》
《爬虫----反爬与反反爬》

2:图片识别的使用:

2.1:图片识别引擎的使用:

import pytesseract
import time
from PIL import Image
# 1: 利用pillow图片库生成图片验证码:
from day04练习.captcha.captcha import captcha
text, image = captcha.generate_captcha()
print(text)
with open("image.png", "wb") as f:
f.write(image)
time.sleep(2)
# 1: 读取本地的图片文件:
img = Image.open("./image.png")
# 2:pytesseract将图片上的文字信息转换成字符串
text_end = pytesseract.image_to_string(img)
print(text_end)

2.2:使用图鉴打码平台完成验证码的识别:

打码平台的地址:http://www.ttshitu.com/
官方文档:http://www.ttshitu.com/docs/index.html

案例:pillow图片库生成图片,然后使用打码平台解析:

import json
import requests
import base64
from io import BytesIO
from PIL import Image
from sys import version_info
from day04练习.captcha.captcha import captcha
# 生成图片验证码
def get_imgae():
text, image = captcha.generate_captcha()
print("我的图片验证码的真实值是:",text)
with open("image.png", "wb") as f:
f.write(image)
# 打码平台解析工具
def base64_api(uname, pwd, img):
img = img.convert('RGB')
buffered = BytesIO()
img.save(buffered, format="JPEG")
if version_info.major >= 3:
b64 = str(base64.b64encode(buffered.getvalue()), encoding='utf-8')
else:
b64 = str(base64.b64encode(buffered.getvalue()))
data = { "username": uname, "password": pwd, "image": b64}
result = json.loads(requests.post("http://api.ttshitu.com/base64", json=data).text)
if result['success']:
return result["data"]["result"]
else:
return result["message"]
if __name__ == "__main__":
# 调用我的生成图片验证码函数:
get_imgae()
img_path = "./image.png"
img = Image.open(img_path)
# 这里用自己的用户名和密码
result = base64_api(uname='wenbin123', pwd='wenbin321', img=img)
print("真正解析出来的值是:", result)

《爬虫----反爬与反反爬》

三:chrome浏览器使用方法介绍

3.1: 新建隐身窗口

浏览器中直接打开网站,会自动带上之前网站时保存的COOKIE,但是在爬虫中首次获取页面是没有携带COOKIE的,这种情况如何解决呢?

打开浏览器,不需要携带COOKIE,则需要无痕打开:
《爬虫----反爬与反反爬》

3.2: chrome中network的更多功能:

《爬虫----反爬与反反爬》
下面这里可以搜索,js/css/html中的单词。
《爬虫----反爬与反反爬》


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
author-avatar
豬仔珊珊_114
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有