《封号码罗》python爬虫之30行代码破解图片伪装反爬虫(一)

图片伪装是将文字以图片的形式和正常文字混合,虽然不影响用户阅读,但是可以让爬虫拿不到当前看见的文字,具体如下图:
在这里插入图片描述
可以看得出来,这里的这个电话号码,是一个图片的形式,下面的程序,将绕过这种反爬虫策略

import requests
from parsel import Selector
import io
from urllib.parse import urljoin

try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract

url = "http://www.porters.vip/confusion/recruit.html"
response = requests.get(url=url)
sel = Selector(response.text)
company = sel.css("h1.interval::text").get()
image_name = sel.css(".pn::attr('src')").extract_first()
print(image_name)
# 拼接图片名称
image_url = urljoin(url, image_name)    # http://www.porters.vip/confusion/phonenumber.png
print(image_url)
# 请求图片,拿到图片字节流内容
image_body = requests.get(image_url).content
# 使用Image_open打开图片字节流,得到图片对象     BytesIO实现了在内存中读写bytes
image_stream = Image.open(io.BytesIO(image_body))
# 使用光学字符识别从图片中读取文字并打印输出结果
res = pytesseract.image_to_string(image_stream)
print(res)
# print(company)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值