图片伪装反爬虫

图片伪装反爬虫

目标网站:广西人才网
目标地址:https://www.gxrc.com/jobDetail/c4329efab8424b5d871df247f299543a
爬取要求:爬取联系方式

1.分析网页

在这里插入图片描述

发现爬取的联系方式是一张图片,怎么办呢?

2.解决思路

  • 2.1 首先拿到图片URL
  • 2.2 请求该URL,.content,得到二进制的文本流内容
  • 2.3 使用io.BytesIO操作处理二进制数据,即io.BytesIO(字节流内容)
  • 2.4 用Image.open打开图片字节流 得到图片对象
  • 2.5 使用光学字符识别tesseract识别图片中的字符串

3.代码如下

# -*- coding: UTF-8 -*-
"""
@author:林健
@file:Image_guise.py
@time:2020/11/14
"""
import re
from urllib.parse import urljoin
import pytesseract
import requests
from fake_useragent import UserAgent
from PIL import Image
import io

"""
目标网站:广西人才网
目标地址:https://www.gxrc.com/jobDetail/c4329efab8424b5d871df247f299543a
爬取要求:爬取联系方式
"""
ua = UserAgent()
url = 'https://www.gxrc.com/jobDetail/c4329efab8424b5d871df247f299543a'

headers = {
    'User-Agent': ua.random  # 设置随机UA
}
response = requests.get(url, headers=headers)
# print(response.text)
# 使用正则获取图片的src
img_src = re.search(r'联系电话:<label><img src="(.*?)" /></label>', response.text)
img_url = urljoin(url, img_src.group(1))  # 拼接路径
images = requests.get(img_url, headers=headers)  # 对图片URL进行请求
# images.content: 获取图片的二进制字节流
# io.BytesIO(): 操作处理二进制数据
# Image.open(): 打开图片字节流,得到一个图片对象
images_c = Image.open(io.BytesIO(images.content))
# 配合光学字符识别tesseract识别出图片中的字符串
phone = pytesseract.image_to_string(images_c)
print(f'联系方式: {phone}')

新手上路,代码写的不好,谅解下,如果有理解错误的或者不太明白的地方,欢迎在评论区留言,我们共同进步。

以上就是 图片伪装反爬虫 的所有内容了,点赞收藏加评论是最大的支持哦!

📑编写不易,转载请注明出处,如有侵权,请联系我!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CodeBoy‍

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值