ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 【感谢加精】网页采集教程第五课-如何伪造Cookie及处理Referer防盗链

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-2 15:35 | 显示全部楼层
这个要得,碰到了这种问题

TA的精华主题

TA的得分主题

发表于 2012-12-2 21:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
记号, 好好学习!

TA的精华主题

TA的得分主题

发表于 2013-2-21 09:38 | 显示全部楼层
liucqa 发表于 2012-7-28 15:21
请看下面的代码,原贴在这里:http://club.excelhome.net/forum.php?mod=redirect&goto=findpost&ptid=8112 ...

这是新的会计师网址,你的代码在这不管用了,呵呵
http://219.239.196.201/cicpa2_web/public/query0/1/00.shtml

Sub Test()
    Dim tmp() As String, P As Long, arr() As String, xmlhttp As Object, I As Long, t As Single, COOKIE As String

    Set xmlhttp = CreateObject("WinHttp.WinHttpRequest.5.1")
    With xmlhttp
        .Option(6) = 0
        .Open "GET", "http://219.239.196.201/cicpa2_web/public/query0/1/00.shtml", False
        .SEND
       COOKIE = Split(.getResponseHeader("Set-Cookie"), ";")(0)                  '第一次调用获取Cookie
    End With
    With xmlhttp
        .Open "POST", "http://219.239.196.201/cicpa2_web/OfficeIndexAction.do", False
        .Option(6) = 1
        .setRequestHeader "Referer", "http://219.239.196.201/cicpa2_web/public/query0/1/00.shtml"          '设置正确的Referer
        .setRequestHeader "Cookie", COOKIE                                                                            '设置有效Cookie
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .setRequestHeader "Connection", "keep-alive"
        .SEND "method=queryOffices&isStock=&pageNum=1&ascGuid=00000000000000000000000000000000&offName=&offCode=&cpaNum=1"          '第二次获取数据
        With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")                   'DataObject对象,数据放入剪贴板,记事本观察数据
            .SetText xmlhttp.responsetext
            .PutInClipboard
        End With
    End With
    Set xmlhttp = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2013-2-27 10:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在这个网站上http://swcx.hb-n-tax.gov.cn/hbgs2/invoice/front/invoice_random.jsp?sessionid=verify_code
不管用这种方式= .getallResponseHeaders()
还是这种方式= .getResponseHeader("Set-Cookie")
都无法得到其cookies。

大师,这个该如何解决?

TA的精华主题

TA的得分主题

发表于 2013-6-11 10:25 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-6-14 15:43 | 显示全部楼层
获益良多  感谢!
仿造  Cookie 和 Reference 会了
不过第三种防盗链 "时间戳"  好像没什麽着墨!
__utma=38054369.906002181.1371192935.1371192935.1371192935.1;
__utmb=38054369.1.10.1371192935;
__utmc=38054369;
__utmz=38054369.1371192935.1.1.
utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
学海无涯勤是岸    期待大师的再度开讲

点评

http://club.excelhome.net/thread-939881-1-1.html 六楼,仔细把教程看全了  发表于 2013-10-15 12:27

TA的精华主题

TA的得分主题

发表于 2013-8-15 14:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-10-15 12:03 | 显示全部楼层
yarchen 发表于 2013-6-14 15:43
获益良多  感谢!
仿造  Cookie 和 Reference 会了
不过第三种防盗链 "时间戳"  好像没什麽着墨!

这个叫时间戳么??

TA的精华主题

TA的得分主题

发表于 2013-12-4 23:36 | 显示全部楼层
要链接的网站:http://www.capital.com.tw
用抓包工具可以看到的信息头的内容很丰富如下图:
Q1-cookie-short.png
在vba中写的代码如下:
-----------------------------------
Sub capital_extr()
Dim cap_winhttpreq As WinHttpRequest
Dim mycooki$

Set cap_winhttpreq = New WinHttpRequest
With cap_winhttpreq
.Option(6) = 0
.Open "get", "http://www.capital.com.tw", False
.setRequestHeader "Connection", "Keep-Alive"
.send
mycooki = .getAllResponseHeaders

With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText mycooki
.PutInClipboard
End With

End With
Set cap_winhttpreq = Nothing
End Sub
----------------------------------
结果用记事本看到的结果,竟然只有一点点,不知是那里出错了?
不是要各位帮忙除错,只是想知道小的是不是忽略了什么?

Cache-Control: private
Allow: GET, HEAD, OPTIONS, TRACE
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Wed, 04 Dec 2013 15:10:56 GMT
Content-Length: 5742


我想问的是,网页的信息头难到也有某些防窥探的做法吗?信息头不就是告知浏覧器要遵守什么规则,进行什么行为或是通知服务器要返回什么样的信息等而已吗?



TA的精华主题

TA的得分主题

发表于 2013-12-16 21:01 | 显示全部楼层
问个问题,希望搂主给予解答,万分感谢!
COOKIE = Split(.getResponseHeader("Set-Cookie"), ";")(0)                  '第一次调用获取Cookie

上面这句,处理的是响应返回的set-cookie,但是这之前的"GET",因为WinHttp.WinHttpRequest.5.1对象不会自带cookie,那么"get"的结果,网站认为是非注册用户(我也测试过,打开响应文件后是非登陆状态),那么再处理响应返回的set-cookie就没有意义了,下面再"post"的时候,调用set-cookie的值还是会处于非登陆状态,23楼测试不成功,大概也是因为这个原因吧。

望搂主给以方案解决。。。坐等
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-21 06:59 , Processed in 0.047381 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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