【问题标题】:Python: get CATCHA file from htmlPython:从 html 获取 CATCHA 文件
【发布时间】:2017-08-09 21:08:32
【问题描述】:

我尝试在 python 上解码验证码,但我不知道如何从 html 中获取它。 我用

html = session.get(page, headers=headers).text
soup = BeautifulSoup(html, "html.parser")

而html看起来像

<img src="/captcha.gif" style="width:1px;height:1px"/>

我怎样才能提取它?我只能通过保存图像来做到这一点?

【问题讨论】:

标签: python html beautifulsoup captcha


【解决方案1】:

您可以像这样在 PC 上获取图像:

import urllib.request
from bs4 import BeautifulSoup as BS

tag = '<img src="/captcha.gif" style="width:1px;height:1px"/>'
soup = BS(tag)
img_tag = soup.find('img')
urllib.request.urlretrieve('https://absolute/path/to'+img_tag['src'], os.getcwd() + '/temp_img')

【讨论】:

  • 我有一个错误urllib.error.URLError: &lt;urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)&gt;。我检查该域是否使用print(session.get(page, headers=headers).url) 重定向,它返回我https://moskva.tiu.ru/Tehnicheskie-moyuschie-sredstva;50 并获取图像链接,它看起来像/captcha.gif,但urllib.request.urlretrieve(page + img_link, '/Users/elenadevyataykina/PycharmProjects/parsing_contacts/captcha/') 返回错误
  • 我不知道您是如何获得验证码的,我向https://moskva.tiu.ru/Tehnicheskie-moyuschie-sredstva 页面发出了 > ​​150 个请求,没有暂停并且没有捕获验证码页面。你确定,你真的需要验证码解析吗?=)
  • 你传入rllib.request.urlretrieve()page的值是多少?
  • 它在 3000 次请求后阻止了我,间隔 3 秒
  • 只有没有img的url?
猜你喜欢
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 2011-05-16
  • 2017-01-16
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 2016-03-24
相关资源
最近更新 更多