不止是图片伪装反爬虫

文本混淆反爬虫

文本混淆可以有效地避免爬虫获取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()

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

注意:

1、安装必要的包:

pip install pillow

pip install pytesseract

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

原创文章 93 获赞 65 访问量 12万+

猜你喜欢

转载自blog.csdn.net/weixin_43870646/article/details/105328055
今日推荐