提取CAPTCHA图像

时间:2013-10-12 11:13:00

标签: python python-2.7 xpath lxml captcha

我正在从 CAPTCHA 图像中提取的各种数字为Neuron Network构建训练集。 我正在使用 Python 2.7.3 lxml 库和 XPath 选择器。

要从验证码中获取正确的图像,我需要提取动态加载到www中的img src,每次都不同,所以我的Python代码是:

import urllib
from lxml import etree, html

adres_prefix = "https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/"
adres_sufix = etree.XPath('string(//img[@class="captcha"]/@src)')
sock = urllib.urlopen("https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx")
htmlSource = sock.read()                             
sock.close()
root = etree.HTML(htmlSource)
result = etree.tostring(root, pretty_print=True, method="html")
result2 = adres_sufix(root)
www = adres_prefix + result2
print www

所以每次我收到www:

https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/captcha.ashx?id=1b7d2b6d-70a6-4ce3-bedd-fe89038fb7f3&empty=1

出了什么问题,因为将此链接复制到我的浏览器中时,我什么都没得到。

包含CAPTCHA

的源页面

我不知道出了什么问题。为什么XPath选择器会 '& empty = 1' ? 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

原始HTML源代码具有“empty = 1”,因此您的代码是正确的。要获得图像,只需修剪“& empty = 1”部分。

https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/captcha.ashx?id=1b7d2b6d-70a6-4ce3-bedd-fe89038fb7f3