不止是图片伪装反爬虫

文本混淆反爬虫

     文本混淆可以有效地避免爬虫获取Web应用中重要的文字数据,使用文本混淆限制爬虫获取文本数据的方法称为文本混淆反爬。反爬虫的前提是不能影响用户正常浏览网页和阅读文字内容,直接混淆文本很容易被看出来,所以开发者通常是利用CSS的特性来实现混淆。

     常见的文本混淆手段有图片伪装、文字映射和自定义字体等。

在这里插入图片描述

图片伪装反爬虫

     图片伪装指的是将带有文字的图片与正常文字混合在一起,以达到“鱼目混珠”的效果。这种混淆方式并不会涌向用户阅读,但是可以让爬虫程序无法获得“所见”的文本内容。
在这里插入图片描述

图片伪装反爬虫绕过实战

"""
图片伪装反爬虫示例
网址:http://www.porters.vip/confusion/recruit.html
任务:抓取招聘网站企业详情页的中企业名称及联系电话
思路:
1.向目标网站发起网络请求
2.使用Parsel库从响应正文中提取图片名称,并将它与URL拼接完整的地址
3.向图片发起网络请求
4.从响应正文中提取图片内容,并使用光学字符识别技术(PyTessract库)从图片中提取文字
"""
import io
import requests
from urllib.parse import urljoin
from parsel import Selector
try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract

def __init__():
    url = 'http://www.porters.vip/confusion/recruit.html'
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",
    }
    return url,headers

def get_request_from_page(url):
    response = requests.get(url=url,headers=__init__()[1])
    if response.status_code == 200:
        return response
    else:
        return False

def get_content_from_page():
    response = get_request_from_page(url=__init__()[0]).text
    sel = Selector(response)
    #从响应正文中提取图片名称
    image_name = sel.css('.pn::attr("src")').extract_first()
    #拼接图片名和URL
    image_url = urljoin(__init__()[0],image_name)
    print(image_url)
    #请求图片,拿到图片的字节流内容
    image_body = get_request_from_page(image_url).content
    #使用Image.open打开图片字节流,得到图片对象
    image_stream = Image.open(io.BytesIO(image_body))
    print(pytesseract.image_to_string(image_stream))

if __name__ == '__main__':
   get_content_from_page()

运行结果:
在这里插入图片描述

注意

一、安装必要的包:

  • pip install pillow

  • pip install pytesseract

二、安装tesseract-ocr的识别引擎

  • 下载地址:https://github.com/UB-Mannheim/tesseract/wiki

在这里插入图片描述

  • 或者更多版本的tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/

三、配置环境变量

  • 装完成后配置环境变量: 我的电脑 ->属性 -> 高级系统设置 ->环境变量 -系统变量 ,在 path 中添加 安装路径。
    在这里插入图片描述

  • 在命令行 WIN+R 输入cmd :输入 tesseract -v ,出现版本信息,则配置成功。

在这里插入图片描述

关注不迷路哦

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成都—大数据开发工程师—杨洋

你的打赏是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值