ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: shenghua8

[求助] (网页采集)如何在网上批量查询信息并提取到Excel(网页有图片验证码)

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-20 11:11 | 显示全部楼层
本帖最后由 shenghua8 于 2013-3-7 14:54 编辑
liucqa 发表于 2013-1-30 21:58
这个图片用ocr识别估计可以


liucqa  老师:
我已根据
http://club.excelhome.net/thread-917414-1-1.html
这个帖子
能显示验证码了,
可以手工录入验证码,
然后想请您帮我做个在网上批量查询信息的程序。
拜托了!{:soso_e183:}

TA的精华主题

TA的得分主题

发表于 2013-2-20 12:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
shenghua8 发表于 2013-2-20 11:10
kangatang 老师:

我已根据

识别验证码并不难,找个懂的人就能帮你解决。放弃验证码自动识别的求助,你感觉不到批量处理的意义。
我可以给你整个查询程序(由于学艺不精,半路出家,只会验证码人工识别)。但是你一旦得到验证码自动识别的帮助,我给你的程序就没有任何意义。还是继续求助把。。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-20 14:30 | 显示全部楼层
kangatang 发表于 2013-2-20 12:55
识别验证码并不难,找个懂的人就能帮你解决。放弃验证码自动识别的求助,你感觉不到批量处理的意义。
我 ...

能感觉到,能感觉到。
有意义,有意义。
我只输入验证码,总比一个一个的输入身份证号、姓名、考生号强噻。

TA的精华主题

TA的得分主题

发表于 2013-2-20 14:42 | 显示全部楼层
shenghua8 发表于 2013-2-20 14:30
能感觉到,能感觉到。
有意义,有意义。
我只输入验证码,总比一个一个的输入身份证号、姓名、考生号强 ...

"能感觉到,能感觉到。
有意义,有意义。...."

我怎么感觉你说话的时候有回音?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-20 14:58 | 显示全部楼层
kangatang 发表于 2013-2-20 14:42
"能感觉到,能感觉到。
有意义,有意义。...."

{:soso_e106:}
可能是我选择了立体声混音和Mic加强。

TA的精华主题

TA的得分主题

发表于 2013-2-26 17:54 | 显示全部楼层
本帖最后由 kangatang 于 2013-2-27 17:24 编辑

拿去用吧,人工识别。希望有人能帮你弄个自动识别。

有点像在练习盲打,有木有同感?
学信网批量查询大学新生学籍信息.rar (43.36 KB, 下载次数: 546)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-2-26 18:22 | 显示全部楼层
本帖最后由 kangatang 于 2013-2-26 21:24 编辑

非常像二战时期德军半自动步枪,子弹手动上膛,并只能点射;
希望楼主早日找到德军的 Mg42 Machine Gun.
无条件支持教育事业

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-27 16:43 | 显示全部楼层
kangatang 发表于 2013-2-26 17:54
拿去用吧,人工识别。希望有人能帮你弄个自动识别。

kangatang 老师:
您太神了!{:soso_e179:}
有这效果,俺满意了!
这是俺在ExcelHome论坛以来,得到的最让我欣喜若狂的帮助!
我试用了,完全正确!

(一)您还考虑得非常细致,例如:
1、如果验证码错误,可无限次的重输,并提示"验证码错误请重新输入";
2、如果没找到某考生,用Cells(i, 4).Value = Split(Split(rawdata, "_GB2312'""" & ">")(1), "</font>")(0)这句,显示错误信息(也是网页里提取的);
3、如果姓名列没姓名,用If Cells(i, 3) = "" Then Cells(i, 3) = std_name这句,在姓名列里显示姓名。
……等等,等等。这充分体现了一个专业程序员的自我修养!

(二)原来我所准备的如下这两项,在您的程序里根本是无所谓的:
1、“考生号、身份证号、姓名三项中至少输入两项”,在您的程序里一句就搞定,无所谓三项还是两项;
2、我以为要重绘验证码图片,原来不必,在您的程序里只需显示一下验证码图片即可。

(三)实际应用中,根据情况不同可能需要变化的两处,请教 kangatang 老师:
1、表的结构不同,比如身份证号、考生号、姓名等分布的列不同,我只需更改每一个Cells(i, 列号)里的那个列号就可以了吧?
2、我希望根据表格实际多少行,就循环多少次,我将
  1. For i = 2 To 44
复制代码
改成了
  1. For i = 2 To ActiveCell.SpecialCells(xlLastCell).Row
复制代码
用起来到是能用,但这句是不是还能简化一下?请 kangatang 老师再帮我改改。

我对您的景仰已经不能用“感谢”二字来形容!{:soso_e183:}

TA的精华主题

TA的得分主题

发表于 2013-2-27 17:25 | 显示全部楼层
本帖最后由 kangatang 于 2013-2-27 17:30 编辑
shenghua8 发表于 2013-2-27 16:43
kangatang 老师:
您太神了!
有这效果,俺满意了!

对于第二个要求
"2、我希望根据表格实际多少行,就循环多少次,我将"

我在16楼已经更新。每次运行都继续上次未完成的工作。试试。

至于第一个要求,你可自行修改。


TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-27 17:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
kangatang 发表于 2013-2-27 17:25
对于第二个要求
"2、我希望根据表格实际多少行,就循环多少次,我将"

假如表格不是这么布局的,
“身份证号、考生号、姓名”不是ABC三列,
或者“院校名称”不在D列,或者D2以下不是空白,
  1. lastone = Columns("A:C").Find("*", _
  2.    SearchOrder:=xlByRows, LookIn:=xlFormulas, _
  3.    SearchDirection:=xlPrevious).EntireRow.Row
  4. firstone = [D65536].End(xlUp).Row
复制代码
还是不通用啊。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 09:02 , Processed in 0.051377 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表