- 主题:如何获得验证码的图片
抓到的元素是这样的,如何获得图片啊?
--
FROM 101.88.254.*
不就是访问n_code.php
【 在 javame (javame) 的大作中提到: 】
: 抓到的元素是这样的,如何获得图片啊?
--
FROM 119.129.120.*
n_code.php不是图片啊。这个图片是php根据某种算法得到的吗?
我怎么下载下来呢?谢谢!
【 在 canper (洗衣粉) 的大作中提到: 】
: 不就是访问n_code.php
--
FROM 101.88.254.*
我好像有点懂了。是不每次点击,服务器就会有个和日期相关的图片文件。
然后,我就能下载了。
【 在 canper (洗衣粉) 的大作中提到: 】
: 不就是访问n_code.php
--
FROM 101.88.254.*
我看不到图片,试着回答一下。web服务器不是只能为静态的文件提供下载,而是可以配置handler,为不同的url执行不同的程序,并返回其执行的结果——动态内容。能下载到.php的源码,说明web服务器配置错了。可以想象下网站访问次数计数器如何实现,<img src="counter.php">,counter.php要把计数保存在个文件里,每次更新,还有生成.gif/.png图片。
php可以返回个.html文件,which里面有一大堆<img>,文件名可能不是固定的yan-zheng-ma.png,所以可能需要解析下.html,需要html parser.
php还可以返回内嵌js代码的.html文件,js代码可以再去修改css……
今日头条告诉我有本书《爬虫与反爬虫技术》,我没有看过。验证码如果设计成ocr轻易识别,就失败了。许多验证码还需要操作下,例如拖动滑块。
也许可以在Windows/Linux下写程序,模拟鼠标的操作,也许可以在浏览器里写插件,解析html,模拟鼠标操作等,我都没试过。
我想过做个HTTP proxy,下载了tinyproxy的源码,再一想无名无利,就还是打游戏去了。这个可以把所有的疑似图片都保存下来(大小、gif文件里好像有gif这个字符串),然后再用时髦的机器学习挑出所有的验证码。但是标注数据哪里来?岂不比背单词还无聊?
--
修改:billybear04 FROM 106.121.167.*
FROM 106.121.167.*
访问n_code.php是可以得到图片了。这个是点击验证码的图片,网页会重新刷新,然后换一张验证的图片。
网站第一次打开的时候,验证码的图片已经存在了。
也是这个php实现的吗?
看代码的结构,第一打开页面的时候,验证图片已经存在了啊。
难道只能抓包了吗?
【 在 canper 的大作中提到: 】
: 不就是访问n_code.php
:
--
修改:javame FROM 101.88.254.*
FROM 101.88.254.*
都是这个一个文件
点击后耍一下而已
【 在 javame 的大作中提到: 】
: 访问n_code.php是可以得到图片了。这个是点击验证码的图片,网页会重新刷新,然后换一张验证的图片。
: 网站第一次打开的时候,验证码的图片已经存在了。
: 也是这个php实现的吗?
: ....................
#发送自zSMTH@IOS
--
FROM 223.104.3.*
人家那是在后面加个时间戳,防止浏览器缓存强制刷新图片而已,和服务器没半毛钱关系
【 在 javame (javame) 的大作中提到: 】
: 我好像有点懂了。是不每次点击,服务器就会有个和日期相关的图片文件。
: 然后,我就能下载了。
--
FROM 119.129.120.*
我算是看懂了,难道你认为验证码是一个静态图片?
【 在 javame (javame) 的大作中提到: 】
: 访问n_code.php是可以得到图片了。这个是点击验证码的图片,网页会重新刷新,然后换一张验证的图片。
: 网站第一次打开的时候,验证码的图片已经存在了。
: 也是这个php实现的吗?
: ...................
--
FROM 119.129.120.*
抓验证码不能访问图片url,这么做相当于生成了一个新的验证码,必须获得当前显示的验证码图片才可以。
可以把浏览器放到自己程序里,然后通过浏览器对外的接口获得DOM操作,可以实现对浏览器的完全控制,我曾经这么帮人写过一个程序,下载数据和提交数据,使用C#写的,总共才400行,主要是就是通过WebBrowser的Document属性访问DOM,自己实现jquery类似的方法,并用js脚本实现控制
https://github.com/weihuajiang/PageScriptControl
【 在 javame 的大作中提到: 】
: 抓到的元素是这样的,如何获得图片啊?
--
FROM 221.219.113.128