本帖最后由 acecrazy 于 2014-12-11 14:17 编辑

获取数据-防盗链的处理-模拟Cookie:

再次提醒,抓包前请先清除浏览器所有Cookie、缓存、历史数据。举例:

网站:http://www.gzgczj.com:8080/costRegulatory/user.do?method=changeIndex&fareaId=1

操作:点击“控制价备案”,获取工程名称和招标控制价信息数据。

此网页模拟Referer后仍然无法获取数据。于是考虑模拟Cookie。

复制数据页面的cookie值,填入代码中(先不要去掉Referer的模拟):

Cookie1.png (40.55 KB, 下载次数: 171)

2014-10-22 06:38 上传

Sub Main()

Dim strText As String

With CreateObject("WinHttp.WinHttpRequest.5.1")

.Open "GET", "http://www.gzgczj.com:8080/costRegulatory/project.do?method=showProjectList&isVisitor=1&f_id=11011&t1413902083242", False

.setRequestHeader "Referer", "http://www.gzgczj.com:8080/costRegulatory/user.do?method=changeIndex&fareaId=1"

.setRequestHeader "Cookie", "E0685A9F6B708A1F1039BF2322B82A35"

.Send

strText = .responsetext

Debug.Print strText

End With

End Sub复制代码运行,,立即窗口显示“请重新登录”!

Cookie2.png (8.7 KB, 下载次数: 155)

2014-10-22 06:38 上传

这是为什么呢?这是因为Cookie失效了!我们需要模拟“新鲜”的Cookie才行!

模拟“新鲜”Cookie的方法:

1、复制上面Cookie值字符串。

2、搜索Session框内第一次出现此Cookie值的网页:

Cookie3.png (138.14 KB, 下载次数: 171)

2014-10-22 06:38 上传

Cookie4.png (115.58 KB, 下载次数: 155)

2014-10-22 06:38 上传

3、编写代码,获取该Cookie,然后模拟写入数据网页:

Sub Main()

Dim strText As String

Dim strCookie As String

With CreateObject("WinHttp.WinHttpRequest.5.1")

.Option(6) = False ' 禁止重定向,以获取原网页信息

.Open "GET", "http://www.gzgczj.com:8080/costRegulatory/user.do?method=changeIndex&fareaId=1", False

.Send

strText = .getAllResponseHeaders '获取所有的回应头信息

Debug.Print strText: Stop '在立即窗口里查看头信息

strCookie = Split(Split(strText, "Set-Cookie: ")(1), ";")(0) '取出Cookie值

End With

'在同一个winhttp对象里能保留cookie,为了体现设置cookie的作用,启用一个新的winhttp对象

With CreateObject("WinHttp.WinHttpRequest.5.1")

.Open "GET", "http://www.gzgczj.com:8080/costRegulatory/project.do?method=showProjectList&isVisitor=1&f_id=11011&t1413902083242", False

.setRequestHeader "Referer", "http://www.gzgczj.com:8080/costRegulatory/user.do?method=changeIndex&fareaId=1"

.setRequestHeader "Cookie", strCookie '模拟Cookie

.Send

strText = .responsetext

Debug.Print strText

End With

End Sub复制代码运行。。查看立即窗口,数据获取成功。

注意:本cookie是存在于重定向之前的网页的,要取到该cookie,必须禁用重定向。关于重定向,请参考108楼的帖子

不要用getResponseHeader("Set-Cookie")获取回应头信息中的Cookie值。如果有多个Cookie值,用getResponseHeader("Set-Cookie")获取不到完整的Cookie值。你如果认为模拟Cookie只能写setRequestHeader的话,你就大错特错了。

xmlhttp对象和winhttp对象均可以保留Cookie。

也就是说,要获取某个网页的Cookie,可以先发送对此网页的请求(GET或POST)。只要xmlhttp对象或winhttp对象不关闭,此Cookie在对象运行期间全程有效。

据此,上述代码可以简化为:

Sub Main()

Dim strText As String

With CreateObject("WinHttp.WinHttpRequest.5.1")

.Open "GET", "http://www.gzgczj.com:8080/costRegulatory/user.do?method=changeIndex&fareaId=1", False

.Send '此次send是为了获取cookie

.Open "GET", "http://www.gzgczj.com:8080/costRegulatory/project.do?method=showProjectList&isVisitor=1&f_id=11011&t1413902083242", False

.setRequestHeader "Referer", "http://www.gzgczj.com:8080/costRegulatory/user.do?method=changeIndex&fareaId=1"

.Send

strText = .responsetext

Debug.Print strText

End With

End Sub复制代码运行。。查看立即窗口,数据同样获取成功。

小贴士:用setRequestHeader方法模拟Cookie时,要用winhttp对象。发送网页的请求获取Cookie则xmlhttp、winhttp都可以。

fiddle抓取html代码,不懂html也来学网抓(xmlhttp/winhttp+fiddler)相关推荐

  1. 强大!不懂html也来学网抓(xmlhttp/winhttp+fiddler)

    http://club.excelhome.net/thread-1159783-1-1.html 学习html强力推荐此网站:http://www.w3school.com.cn/ ,绝对权威 交流 ...

  2. 抓取百度页面html,百度会抓取页面代码中的注释内容吗

    百度会抓取页面代码中的注释内容吗 内容导读:百度会抓取页面代码中的注释内容吗?答案是百度会抓取,但是在提取正文的时候会直接忽略掉,也就是说页面代码的注释内容不会影响到页面质量,所以大家尽管放心. 问题 ...

  3. JAVA实现美团电影价格抓取(附代码)

    各位老大好,我是烤鸭: 最近在研究爬虫,看到有意思的是美团的电影票价,普通的抓取是抓不到的. 例如网址:http://bj.meituan.com/shop/105355906?mtt=1.movie ...

  4. 网页java代码_java抓取网页代码

    导读热词 代码以下 import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLCo ...

  5. HTML抓取不到,抓取不到html,curl和file_get_contents都抓不到,但是页面可以直接打开。...

    抓取不到html,curl和file_get_contents都抓不到,但是页面可以直接打开. 请教 网址如下 https:/count.taobao.com/counter3?keys=SM_368 ...

  6. stata抓取html,(5)详解 stata 爬虫抓取网页上的数据 part 1

    *案例:抓取 http://www.tjcn.org 中国统计信息网上前50页(每页包含20个市的数据)的1000个地区的GDP数据.使用stata版本为 stata13,与12版本和14版本都不兼容 ...

  7. 防止抓取html代码,网页中用html代码注释的内容会被抓取吗

    很多站长都知道网页代码里面有注释代码这么个东西,其形式是 ,在HTML里面注释的内容出现在网页源代码,而用户浏览网页的过程中是看不到的.因为注释内容在源代码展现又不会影响页面内容,所以很多人觉得蜘蛛会 ...

  8. 用eclipice抓取JS代码

    public class TestData { /*** * 抓取数据的代码 */ public static void main(String[] args) { try { // 1.创建html ...

  9. php生成超链接完整代码_PHP 超链接 抓取实现代码

    因为最近要做一个类似专业搜索引擎的东西,需要抓取网页的所有超链接.大家帮忙测试一下子,下面的代码是否可以针对所有的标准超链接. 通用HTML标准超链接参数取得正则表达式测试 因为最近要做一个类似专业搜 ...

最新文章

  1. 20211005 Hermite矩阵及几个性质
  2. linux配置桌面快捷方式:idea.desktop快捷方式文件编写
  3. python asyncio future 多线程_深究Python中的asyncio库-线程池
  4. MyBatis动态SQL底层原理分析 与 JavaScript中的Date对象,以及UTC、GMT、时区的关系...
  5. 无服务器安全性:将其置于自动驾驶仪上
  6. 什么是JAVA内容仓库(Java Content Repository)(4完)
  7. buck斩波电路matlab,直流斩波电路的MATLAB建模与仿真.doc
  8. ZAO作一下,你会是谁
  9. Python类和包的介绍
  10. 科技云报道:从Robot到Cobot,人机共融正在开创一个时代
  11. 色阶的中间调调节原理之一
  12. StringUtil工具类
  13. 扩展CUDA SDK 2.3 の convolutionSeparable
  14. 除了钱,创业者还需要什么?专访明月湖创赛创投机构
  15. 使用手势识别控制虾米音乐播放
  16. 用 Python 做石头剪刀布,看谁能赢过谁?
  17. iPad远程控制Windows PC - Microsoft远程桌面
  18. 命令方块召唤别墅指令_命令方块其实不难玩!
  19. 右键万能格式转换工具
  20. Kolin协程与Retrofit 2.6.1完美合璧

热门文章

  1. 今天收到一条诈骗短信!
  2. import open3d:GLIBC_2.18 not found
  3. android华为mate9底部兼容,华为Mate9防水吗?华为Mate 9仅仅支持IPX2级别
  4. 元宇宙时代 理查德数和哥德尔数——哥德尔读后之二十一
  5. ios系统可以用谷歌服务器吗,Android若是在国内能用谷歌服务,就会超越苹果iOS...
  6. Quratus II TimeQuest timing Analyzer 中网表模型设置分析介绍
  7. R5 PRO 4650U怎么样?相当于什么水平
  8. MacOS VSCode 常用快捷键配置
  9. tensorflow报错:AttributeError: 'module' object has no attribute 'get_or_create_global_step'
  10. 移动支付之智能IC卡与Android手机进行NFC通信