找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 39414|回复: 17

[挑战]脚本语言抓取网页模拟登陆网址

[复制链接]
发表于 2013-8-15 18:50:27 | 显示全部楼层 |阅读模式
我曾写过一个百度贴吧签到器,本来信心满满的打算写个大学登陆平台的python,然后,碰瓷了。
http://szyx.cqupt.edu.cn

就是这个杀千刀的。登录方式是jquery提交,这没什么问题,但是需要cookie和验证码。


不限语言,无论是python、vbs、perl,还是bat+vbs。只要能实现就OK


以下可能用到:
------------------------------------------------
1.没有cookie你直接post到http://szyx.cqupt.edu.cn/checkLogin.php没反应。
2.验证码机制不明,直接链接到http://szyx.cqupt.edu.cn/validcode.php
 楼主| 发表于 2013-8-15 20:25:20 | 显示全部楼层
很难么= =..
发表于 2013-8-15 20:51:57 | 显示全部楼层
学点php吧,大学一般会找几个懂技术的学生去帮忙维护网站,到时候你还能看到源代码
发表于 2013-8-15 20:57:10 | 显示全部楼层
这个例子告诉我们,不懂原理用什么语言都是浮云,召唤PowerShell传教士。
发表于 2013-8-16 15:32:41 | 显示全部楼层
本帖最后由 523066680 于 2013-8-16 15:36 编辑

回复 1# canyuexiaolang


    之前试过一个python的飞信发信息工具,里面带验证码识别的工具。
PyWapFetion-0.9.3.tar.gz
 楼主| 发表于 2013-8-16 15:40:14 | 显示全部楼层
回复 5# 523066680


   验证码识别其实也好办,ricter.info/test,我把它的页面下载下来提交之后没反应。但是有返回头。
 楼主| 发表于 2013-8-16 16:56:33 | 显示全部楼层
搞定 !
 楼主| 发表于 2013-8-16 16:58:16 | 显示全部楼层
回复 5# 523066680


   = = 写这个的人我还认识 ..whtsky...
发表于 2013-8-16 17:54:03 | 显示全部楼层
回复 8# canyuexiaolang


    强大
发表于 2013-8-21 18:50:38 | 显示全部楼层
我来了,貌似来晚了,你的要求很常见。
这是两个问题:1cookie 2验证码。
cookie的问题是可以解决的,浏览器会保存cookie。在vbs或者powershell中,new一个ie对象即可。
当然,对于powershell3.0中微软已经为我们封装好命令了,就是Invoke-WebRequest命令。这是一个万用的互联网命令,类似curl。其cookie的用法,参见 这个网址。  http://www.powershellcookbook.co ... application-session

验证码的问题,几乎是解决不了的,或者说最多10---20%管用。
验证码是一种图灵测试。图灵测试是一种测试机器是不是具备人类智能的方法。这是旨在区别人与机器人的测试。
虽然说有矛就有盾,大家在尝试各种机器输入验证码的方法,但是效果不佳。
我可以告诉你个事实,推特上的僵尸粉,发消息,用的是【雇佣廉价中国大学生输入验证码】的方式做的。
一旦有一天,你研究出了针对这种锁头的万能钥匙,只要你一用,人家立马就会知道,就会换锁。。。
发表于 2013-8-22 09:10:26 | 显示全部楼层
发表于 2013-8-22 19:02:00 | 显示全部楼层
???????????????????
所谓艺高人牛x,楼上的版主在图像识别领域,和图像智能处理领域(如:看到图像3+?=11就能分辨出应该输入验证码"8")已经取得重要成果了?识别率是多少?
拿得出成果的话,那些刷榜,刷票,抢火车票的那些人,貌似要叫你亲爹了.
拿不出的话,看官可要哈哈哈,我可要鄙视了.
发表于 2013-9-27 11:35:42 | 显示全部楼层
本帖最后由 caruko 于 2013-9-27 11:37 编辑

这是我写的,去年过年期间,百度抢红包的代码,验证码用的第三方平台。

其中用到工具:
curl  
ivon 转码
conset 论坛里有的直接通过管道赋值变量用。
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. ::本机代理,测试用 set "daili=-x 127.0.0.1:8888"
  4. set ag=-A  "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)"

  5. ::填入手机号码
  6. set phone=********
  7. ::起始日期
  8. set Bday=1980-01-13
  9. ::循环多少次日期
  10. set max=10
  11. :loop
  12. set /a k+=1
  13. for /f "skip=2 tokens=1-3 delims=年月日 " %%a in ('Calendar /A !Bday! 00:00:00 1 00:00:00') do (
  14.         set /a yy=%%a,mm=%%b+100,dd=%%c+100
  15.         set "Bday=%%a-%%b-%%c"
  16.         set "nday=!yy!!mm:~-2!!dd:~-2!"
  17. )
  18. if !k! geq !max! exit

  19. :main
  20. conset /d @  >nul
  21. conset /d _  >nul
  22. set "@phone=!phone!"
  23. set "@birth=!nday!"
  24. call :putUser
  25. ::call :search
  26. call :topic
  27. call :lottery
  28. echo,!nday!
  29. call :拿奖 && goto :loop
  30. echo,剩余抽奖次数:!@count!
  31. if !@count! geq 1 (
  32.         goto :main
  33. ) else (
  34.         goto :loop
  35. )
  36. goto :eof


  37. :putUser
  38. echo,验证用户...
  39. 2>nul curl !ag!  !daili!  -b cookies.txt -c cookies.txt -d "phone=!@phone!&birth=!@birth!&validcode=!@validcode!&valid=!@valid!&_r=0.7948380977831662" -e http://www.baidu.com/chunjie/show/welcome http://www.baidu.com/chunjie/submit/checkusr |iconv -f utf-8 -c|conset _rjson=
  40. for /f "tokens=2-7 delims={}:," %%a in ('conset /v _rjson') do  (
  41.         if %%b=="4001" echo,"生日错误!"
  42.         if %%b=="4002" echo,"手机号错误!"
  43.         if %%b=="4003" (
  44.                 echo,"验证码错误!";
  45.                 call :getCoed
  46.                 call :putUser
  47.         )
  48.         if %%b=="5001" echo,"unable"
  49.         if %%b=="6001" echo,"系统繁忙,请稍后再试^_^"
  50.         if %%b=="0" (
  51.                 set /a auto=0
  52.                 echo,验证成功,得到搜索字串..
  53.                 call :stv %%c %%d
  54.                 call :stv %%e %%f
  55.         )
  56. )
  57. set "@cookie=CJKEY=!@key!;CJEGG=1;CJPHONE=!@phone!;CJBIRTH=!@birth!"
  58. goto :eof



  59. :getCoed
  60. echo,获取验证码...
  61. 2>nul curl !ag!  !daili!  --cookie "!@cookie!" -b cookies.txt "http://www.baidu.com/chunjie/data/valid?phone=!@phone!&birth=!@birth!&_r=0.2951152564330317" |conset _rjson=
  62. for /f "tokens=1-3 delims={}," %%a in ('conset /v _rjson') do  (
  63.         for /f "tokens=1,2 delims=:" %%A in ("%%a") do (
  64.                 call :stv %%A %%B
  65.         )
  66.         for /f "tokens=1,2 delims=:" %%A in ("%%b") do (
  67.                 call :stv %%A %%B
  68.         )
  69.         for /f "tokens=1* delims=:" %%A in ("%%c") do (
  70.                 call :stv %%A %%B
  71.         )
  72. )
  73. 2>nul curl !ag!  !daili!  "!@validUrl!" >code.jpg
  74. gdip "/t:cmd /c" code.jpg*250*150
  75. set /p @valid=请输入验证码:
  76. goto :eof


  77. :search
  78. echo,开始搜索,取得cookie...
  79. for /f "delims=" %%a in ('echo,!@query!^|urlencode.bat') do set "@query_URL=%%a"
  80. 2>nul curl !ag!  !daili! -I  -c cookies.txt -e "http://www.baidu.com/chunjie/show/welcome"  "http://www.baidu.com/s?bhjc=zl&wd=!@query_URL!" |findstr "Set-Cookie"|conset @Set-Cookie=
  81. for /f "tokens=1* delims=:" %%a in ('conset /v @Set-Cookie') do (
  82.         for /f "tokens=1 delims=; " %%A in ("%%b") do (
  83.                 set @%%A
  84.                 set "@cookie=!@cookie!;%%A"
  85.         )
  86. )
  87. goto :eof

  88. :topic
  89. echo,获取KEY...
  90. 2>nul curl !daili!  -H "Cookie: !@cookie!" --cookie "!@cookie!" -c cookies.txt -e "http://www.baidu.com/s?bhjc=zl&wd=!@query!" http://www.baidu.com/chunjie/show/topic >topic.txt
  91. cut topic.txt  {errNo });|conset @top=
  92. set @top=errNo!@top!
  93. for %%a in (!@top!) do (
  94.         for /f "tokens=1,2 delims=:" %%A in ("%%a") do (
  95.                 call :stv top_%%A %%B
  96.         )
  97. )       
  98. goto :eof


  99. :lottery
  100. echo,获取礼品...
  101. set /a ff=0
  102. 2>nul curl !daili!  -H "Cookie: !@cookie!" --cookie "!@cookie!" -c cookies.txt -d "key=!@top_nextKey!&key1=areyoucheating&_r=0.8628629175014569"  -e   http://www.baidu.com/chunjie/show/topic http://www.baidu.com/chunjie/submit/lottery|iconv -f utf-8 -c|conset @prize=
  103. set @prize=!@prize::{=!
  104. set @prize=!@prize:{=!
  105. set @prize=!@prize:}=!
  106. set @prize=!@prize: =!
  107. for %%D in (!@prize!) do (
  108.         for /f "tokens=1,2 delims=:" %%a in ("%%D") do (
  109.                 call :stv %%a %%b
  110.         )
  111. )
  112. goto :eof

  113. :拿奖
  114. if not "!@prizeid!"=="" (
  115.         msg * "你中奖了!注意拿奖!"
  116.         echo,================================>>prize.txt
  117.         set @>>prize.txt
  118.         echo,================================>>prize.txt
  119.         exit /b 0
  120. )
  121. exit /b 1


  122. :stv
  123. set "@%~1=%~2"
  124. goto :eof


  125. :自动识别验证码
  126. echo,正在自动识别验证码...
  127. curl -F "__EVENTTARGET=" -F "__EVENTARGUMENT=" -F "__VIEWSTATE=/wEPDwUKLTE3NDE4NzE0NQ9kFgJmD2QWAgIDD2QWAgIBDxYCHgdlbmN0eXBlBRNtdWx0aXBhcnQvZm9ybS1kYXRhFgICCw8WAh4EVGV4dAVL5rWL6K+V56ev5YiG5Y+v5ZCR5a6i5pyN6aKG5Y+W44CCPGEgaHJlZj0nVXNlclJlZy5hc3B4Jz7njJvlh7vmiJHms6jlhow8L2E+ZGSzCjPNYUlhvk8bVKkIiv+SjYK/eQ==" -F "__EVENTVALIDATION=/wEWBAKKjaLKDgKlhNbxBQKqw6i0BAKyjrOQAs5tN9SZNKrbdIQmtQWmWarKLf/a" -F "ctl00$ContentPlaceHolder1$txtUser=username" -F "ctl00$ContentPlaceHolder1$txtPass=password" -F "ctl00$ContentPlaceHolder1$file1=@code.jpg;type=image/jpeg" -F "ctl00$ContentPlaceHolder1$btnRecognize=开始识别" http://www.uuwise.com/OnlineDemo.aspx |conset _rjson=
  128. for /f "tokens=2,4 delims=:,)" %%a in ('conset /v _rjson') do (
  129.         set "@valid=%%a"
  130.         set "codeid=%%b"
  131.         set "codeid=!codeid:'=!"
  132.         copy code.jpg log\%%a_%%b.jpg
  133.         echo,%%a,%%b,!date!!time!>>yzm.log
  134. )
  135. exit /b 0
复制代码
发表于 2014-11-22 01:17:25 | 显示全部楼层
工具,CURL,可以登录,保存并使用COOKIE。
验证码识别,这种还属于比较简单的,只有少量干扰,可以多抓几组样本然后用opencv写个数字识别程序。
发表于 2014-11-22 01:38:39 | 显示全部楼层
回复 14# amwfjhh


    同感,实际上没变形没变色位置固定字体不变的验证码算是所有验证码中非常低端的了。。。。。Demon 大神写过 vbs 判断简单验证码的代码,那个验证码比这个还复杂点
    另,又看了下某个被干掉的前任版主的回帖内容,呵呵,呵呵,呵呵呵呵呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:30 , Processed in 0.021946 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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