fiddle抓取html代码,不懂html也来学网抓(xmlhttp/winhttp+fiddler)
本帖最后由 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)相关推荐
- 强大!不懂html也来学网抓(xmlhttp/winhttp+fiddler)
http://club.excelhome.net/thread-1159783-1-1.html 学习html强力推荐此网站:http://www.w3school.com.cn/ ,绝对权威 交流 ...
- 抓取百度页面html,百度会抓取页面代码中的注释内容吗
百度会抓取页面代码中的注释内容吗 内容导读:百度会抓取页面代码中的注释内容吗?答案是百度会抓取,但是在提取正文的时候会直接忽略掉,也就是说页面代码的注释内容不会影响到页面质量,所以大家尽管放心. 问题 ...
- JAVA实现美团电影价格抓取(附代码)
各位老大好,我是烤鸭: 最近在研究爬虫,看到有意思的是美团的电影票价,普通的抓取是抓不到的. 例如网址:http://bj.meituan.com/shop/105355906?mtt=1.movie ...
- 网页java代码_java抓取网页代码
导读热词 代码以下 import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLCo ...
- HTML抓取不到,抓取不到html,curl和file_get_contents都抓不到,但是页面可以直接打开。...
抓取不到html,curl和file_get_contents都抓不到,但是页面可以直接打开. 请教 网址如下 https:/count.taobao.com/counter3?keys=SM_368 ...
- stata抓取html,(5)详解 stata 爬虫抓取网页上的数据 part 1
*案例:抓取 http://www.tjcn.org 中国统计信息网上前50页(每页包含20个市的数据)的1000个地区的GDP数据.使用stata版本为 stata13,与12版本和14版本都不兼容 ...
- 防止抓取html代码,网页中用html代码注释的内容会被抓取吗
很多站长都知道网页代码里面有注释代码这么个东西,其形式是 ,在HTML里面注释的内容出现在网页源代码,而用户浏览网页的过程中是看不到的.因为注释内容在源代码展现又不会影响页面内容,所以很多人觉得蜘蛛会 ...
- 用eclipice抓取JS代码
public class TestData { /*** * 抓取数据的代码 */ public static void main(String[] args) { try { // 1.创建html ...
- php生成超链接完整代码_PHP 超链接 抓取实现代码
因为最近要做一个类似专业搜索引擎的东西,需要抓取网页的所有超链接.大家帮忙测试一下子,下面的代码是否可以针对所有的标准超链接. 通用HTML标准超链接参数取得正则表达式测试 因为最近要做一个类似专业搜 ...
最新文章
- 20211005 Hermite矩阵及几个性质
- linux配置桌面快捷方式:idea.desktop快捷方式文件编写
- python asyncio future 多线程_深究Python中的asyncio库-线程池
- MyBatis动态SQL底层原理分析 与 JavaScript中的Date对象,以及UTC、GMT、时区的关系...
- 无服务器安全性:将其置于自动驾驶仪上
- 什么是JAVA内容仓库(Java Content Repository)(4完)
- buck斩波电路matlab,直流斩波电路的MATLAB建模与仿真.doc
- ZAO作一下,你会是谁
- Python类和包的介绍
- 科技云报道:从Robot到Cobot,人机共融正在开创一个时代
- 色阶的中间调调节原理之一
- StringUtil工具类
- 扩展CUDA SDK 2.3 の convolutionSeparable
- 除了钱,创业者还需要什么?专访明月湖创赛创投机构
- 使用手势识别控制虾米音乐播放
- 用 Python 做石头剪刀布,看谁能赢过谁?
- iPad远程控制Windows PC - Microsoft远程桌面
- 命令方块召唤别墅指令_命令方块其实不难玩!
- 右键万能格式转换工具
- Kolin协程与Retrofit 2.6.1完美合璧
热门文章
- 今天收到一条诈骗短信!
- import open3d:GLIBC_2.18 not found
- android华为mate9底部兼容,华为Mate9防水吗?华为Mate 9仅仅支持IPX2级别
- 元宇宙时代 理查德数和哥德尔数——哥德尔读后之二十一
- ios系统可以用谷歌服务器吗,Android若是在国内能用谷歌服务,就会超越苹果iOS...
- Quratus II TimeQuest timing Analyzer 中网表模型设置分析介绍
- R5 PRO 4650U怎么样?相当于什么水平
- MacOS VSCode 常用快捷键配置
- tensorflow报错:AttributeError: 'module' object has no attribute 'get_or_create_global_step'
- 移动支付之智能IC卡与Android手机进行NFC通信