Как загрузить изображение captcha с помощью запросов.Сеанс с определенного URL-адреса

#python #python-requests #python-imaging-library

Вопрос:

Всем привет, я пытаюсь получить изображение капчи на веб-сайте, чтобы очистить его. Моя проблема в том, что URL-адрес для получения изображения captcha содержит параметр, в котором я не могу найти, откуда он взят. Поэтому я начал использовать parser.xpath, но он не работает. Это мой код:

 import requests, io, re
from PIL import Image
from lxml import html
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36",
}
session = requests.Session()
login_url = 'https://www.sat.gob.pe/WebSiteV8/popupv2.aspx?t=6'
login_form_res = session.get(login_url, headers=headers)
myhtml = login_form_res.text
evalu = ''
for match in re.finditer(r'(mysession=)(.*?)(")', myhtml):
    evalu = myhtml[match.start():match.end()]
    evalu = evalu.replace("mysession=", "")
    evalu = evalu.replace('"', '')
    print(evalu)

url_infractions = 'https://www.sat.gob.pe/VirtualSAT/modulos/RecordConductor.aspx?mysession='   evalu
login_form_res = session.get(url_infractions, headers=headers)
myhtml = login_form_res.text
parser = html.fromstring(login_form_res.text)
idPic = parser.xpath('//img[@class="captcha_class"]/@src')
urlPic = "https://www.sat.gob.pe/VirtualSAT"   idPic[0].replace("..","")
print(urlPic)

image_content = session.get(urlPic, headers=headers)
image_file = io.BytesIO(image_content)
image = Image.open(image_file).convert('RGB').content
image.show()
 

В результате у меня есть исключение, в котором говорится, что ошибка типа: требуется байтоподобный объект, а не «Ответ». Я в замешательстве. Я буду очень признателен вам за помощь. Заранее спасибо

Комментарии:

1. session.get не возвращает строку. Он возвращает Response объект запросов,. Вам просто нужно извлечь содержимое из объекта.

2. Спасибо. Я понимаю, что после функции get я читаю, используя текст атрибута, и ищу элемент управления html в случае img, в котором я нашел источник src=’../controls/JpegImage_VB.aspx?r=43543b9e00854ac0a4ac0f252e53a9b0′, но когда я попытался получить доступ, я не смог.