`
Mybeautiful
  • 浏览: 294591 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

如何抓取需要验证码的网页?

阅读更多

    最近专门研究了下网页抓取,主要是研究对各种情况的抓取方法。今天张瑜 介绍下需要验证码的网页抓取。

   

    现在有些网页为了防止被抓取,它要求用户先填入验证码后,才能使用其服务。那我们的蜘蛛的工作就遇到了极大的障碍;因为它不能识别验证码!当然有同学说用OCR去识别,然后填入。这是个方向,但是总有些验证码是机器无法识别的。那我们怎么办?


    办法其实还是有,既然蜘蛛不能识别验证码;那我们就必须用人识别后告诉它。可行吗? 可行。众所周知,HTTP协议是无连接的协议,那么服务端判断客户端到底是否通过验证(成功输入验证码),一定是Browser传了点什么能代表自己身份的东西,比如cookie, 比如某个隐藏域的值等。既然如此,我们就可以人在网页上人工验证,然后把把与身份有关的信息找到(这个要具体情况具体分析,需要一些实验),最后把这些信息告诉蜘蛛;这样蜘蛛就可以继续冒名的去访问服务端,而服务端认为它已经通过验证,不需要再输入验证码了。


    该方法的主要思路就是回归事物的本源,不管你用什么方式实现的web服务,其根本都是http协议。具体方法论就是上面所述,实践也通过了。主要是要花时间找到能代码Browser身份的信息。注意,有些web server它对User Agent有过滤,有些User Agent明显是机器的,它们可能不会得到跟你在浏览器中返回的同样的内容;故有时候User Agent也需要设置。


    我使用java去做,会用到httpClient, 然后用Chrome去抓取http请求的信息。欢迎各位提出自己的见解。

 

----------------------------------------------------------------------

张瑜,Mybeautiful , zhangyu0182@sina.com

 

推荐阅读,

Java学习这七年     如何阅读源代码     我应该做的更差吗?

2
0
分享到:
评论
8 楼 Mybeautiful 2014-03-05  
wangshihao 写道
遇到个问题,有种网页,点击查看页面源代码和框架源代码不同效果,用frameset构成,而且真实显示的内容在页面源代码里面看不到,该怎么爬取 框架里面的代码? 等待您的回答

能找到这个frameset里面页面的url吧? 如果可以,直接访问,看返回什么东西。 如果不是返回最终的html,那就是有js动态生成的。
推荐个项目 htmlunit, 类似一个模拟的浏览器;你可以研究下。
7 楼 wangshihao 2014-03-04  
遇到个问题,有种网页,点击查看页面源代码和框架源代码不同效果,用frameset构成,而且真实显示的内容在页面源代码里面看不到,该怎么爬取 框架里面的代码? 等待您的回答
6 楼 Mybeautiful 2013-08-27  
cen_32 写道
你有实现过吗?我照你说的,但是不行

实现过,其实核心问题在于我们必须知道登陆后那些是代表登陆成功的东西.

Cookie? header? 隐藏域? 这个要具体分析,尝试。
5 楼 cen_32 2013-08-26  
你有实现过吗?我照你说的,但是不行
4 楼 Mybeautiful 2013-01-12  
huangyunbin 写道
人识别后告诉它,一个人一天能识别多少个验证码,算你10万个,这才多少,,,用人去做这个事情,真不知道你是怎么想的。

如果说只是登录时,一个机器无法识别的验证码呢?登录后可以无障碍工作。

当然也很想听听您的意见。
3 楼 huangyunbin 2013-01-10  
人识别后告诉它,一个人一天能识别多少个验证码,算你10万个,这才多少,,,用人去做这个事情,真不知道你是怎么想的。
2 楼 Mybeautiful 2012-03-21  
AndyEverLie 写道
"具体情况具体分析"。。估计大公司的爬虫是智能而不是人工吧。。

说实话还真没有研究过。理论上它们也不能知道具体的web程序到底是用什么信息去标示某个session的,不同的程序员都可以有自己的搞法;当然也有一些通用的惯例。
另外,我不认为它们的爬虫能处理验证码。 或者说一般需要验证码的东西,是不希望被别人轻易得到的(认为设置障碍),那么google,baidu它们也不必去爬它。
1 楼 AndyEverLie 2012-03-21  
"具体情况具体分析"。。估计大公司的爬虫是智能而不是人工吧。。

相关推荐

    批量抓取网站验证码

    该项目可以用来抓取网站的验证码

    .net 生成验证码 代码 页面

    将这两个文件拷贝到项目当中,在需要加验证码的页面添加一个image空间,imageurl 指定到此页面,生成的验证码保存在Session["CheckCode"]中,验证时,将用户输入的值和此值比对

    asp.net网站开发完美的验证码实例

    asp.net网站开发完美的验证码实例。 详细讲解ASP.NET网站中验证码的设计过程。

    易语言取网页验证码图片

    易语言取网页验证码图片,实现及时抓取网页上的验证码。

    针对 httpclient4.* 绕验证码获取公司信息 包括 jsoup网页信息的爬虫及htmlUnit对动态网站信息的抓取

    针对 httpclient4.* 绕验证码获取公司信息 包括 jsoup网页信息的爬虫及htmlUnit对动态网站信息的抓取

    Python模拟登录网站并抓取网页的方法.pdf

    Python模拟登录网站并抓取网页的方法.pdf Python模拟登录网站并抓取网页的方法.pdf Python模拟登录网站并抓取网页的方法.pdf Python模拟登录网站并抓取网页的方法.pdf Python模拟登录网站并抓取网页的方法.pdf

    将网页上的图片保存在本地

    通过输入的网络图片地址来抓取网页。 首先获取图片地址,然后根据图片地址请求网页获取流转成图片保存到本地。 可以改为爬去百度图片或抓取网页验证码

    js实现网页随机验证码

    本文实例为大家分享了js实现网页随机验证码的具体代码,供大家参考,具体内容如下 1、现在全选网站为了防止用户利用机器人自动注册、登录、灌水,采用了验证码技术。所谓验证码,就是系统将一串随机产生的数字或符号...

    支持抓取javascript渲染的页面的简单实用高效的python网页爬虫抓取模块.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    Python爬虫案例分享,抓取网页内容,聚焦爬虫和UA伪装实操案例分享

    Python爬虫案例分享,requests模块get/post抓取网页内容,聚焦爬虫和反扒技术UA伪装实操案例分享包括异步爬虫,数据解析和验证码相关资料,入门必备资源

    advanced-web-scraping-tutorial, 在高级网页抓取教程中,开发Zipru scraper.zip

    advanced-web-scraping-tutorial, 在高级网页抓取教程中,开发Zipru scraper 高级网页抓取教程项目这里知识库是文章高级网页抓取的伴侣: 绕过验证码," 403禁止"和更多。 有关详情,请参阅本文。 这是一个爬虫的...

    小红书微信小程序爬虫.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    基于Python对新浪登录验证码的自动识别+源代码+文档说明

    抓取网页上的验证码,对验证码图片进行去噪,二值化,分割,再利用神经网络的技术实现对验证码的识别。 - 主要技术: Python编程,利用PIL,numpy,pybrain - 主要步骤: 1. 抓取微博验证码,并保存在captchas...

    基于sg+ws搜索的公众号爬虫接口

    去重处理: 为避免重复抓取相同的网页,爬虫需要进行去重处理,通常使用URL指纹、数据指纹等方式来判断网页是否已经抓取过。 反爬机制应对: 一些网站可能会采取反爬虫机制,如IP封锁、验证码、JS渲染等,爬虫程序...

    电脑获取验证码抓京东ck.rar

    用于电脑获取京东的COOKIE,可以用来测试网页等操作。

    selenium+Chrome滑动验证码破解二(某某网站)

    在自己写代码前参考了一批博客,是把所有验证码图片截取所有验证码图片保存在本地,再对比,感觉方法不行,所以自己写了个破解方法,通过js修改css直接抓取完整图片,因为上一篇写了B站,这里就不一一分析了,直接上代码: ...

    java爬虫登录验证码解析.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    Python图片爬虫与验证码解析攻略.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    知乎爬虫(验证码自动识别).zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    java项目源码之网络爬虫(蜘蛛)的实现.rar

    这个Java项目是一个网络爬虫,也称为网络蜘蛛,旨在自动地从互联网上抓取网页内容并进行处理。...网络爬虫的实现需要考虑到网站的反爬虫机制,如设置User-Agent、限制访问频率、处理验证码等,以保证爬取的顺利进行。

Global site tag (gtag.js) - Google Analytics