Я запускаю некоторый код, и иногда веб-часть этого кода попадает в Captcha. Я хотел бы разрешить их вручную.
Для этого я:
- запросы. Получите HTML-код страницы
- , чтобы найти URL-адрес изображения.
- загрузить изображение
- ввести комбинацию символов в терминал
Затем я хочу опубликовать эту комбинацию на той же странице и отправить ее, не обновляястраницы (потому что это также приведет к обновлению капчи).
Однако я понятия не имею, как это сделать в Python, и я не могу найти какой-либо достойный источник в Интернете.
Я вставил весь код ниже, потому что я не уверен, как создать меньший пример для этого. Также не знаю, имеет ли это отношение.
import requests
from PIL import Image
from bs4 import BeautifulSoup as soup
import io
from fake_useragent import UserAgent
def download_image(url):
r = requests.get(url)
with Image.open(io.BytesIO(r.content)) as im:
im.save("test.jpg")
def get_page(url):
s = requests.Session()
pageHTML = s.get(url).text
return pageHTML
def make_soup(pageHTML):
pageSoup = soup(pageHTML, features='lxml')
return pageSoup
headers = {
"User-Agent": UserAgent().random,
'referrer': 'https://google.de',
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate, sdch, br",
"Accept-Language": "en-US,en;q=0.8",
}
url = "https://www.amazon.de/"
with requests.session() as s:
pageHTML = s.get(url).text
amSearchSoup = make_soup(pageHTML)
#print(amSearchSoup)
captchaURL = amSearchSoup.find("div",{"class":"a-row a-text-center"}).img["src"]
download_image(captchaURL)
print("Image downloaded")
code = input("What's the Captcha?")
data = {
"captchacharacters": code,
"submit": ""
}
url = "https://www.amazon.de/errors/validateCaptcha"
a = s.post(url, data=data, headers=headers) # Login.
with open('somefile.html', 'w') as the_file:
the_file.write(a.text)