ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 不懂html也来学网抓(xmlhttp/winhttp+fiddler)

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-31 11:22 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
renahu 发表于 2014-10-31 10:32
吴老师,\u003这种格式是什么编码?

比如江苏七星彩这个例子中抓到的:

明白点儿了,这里使用的是Unicode编码

TA的精华主题

TA的得分主题

发表于 2014-10-31 12:20 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-31 14:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 wcymiss 于 2014-11-1 16:48 编辑

这里留个空位,有精力就再写个登录。。

接下去是上传了。。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-10-31 14:57 | 显示全部楼层
本帖最后由 kangatang 于 2014-10-31 15:20 编辑
wcymiss 发表于 2014-10-29 16:27
复杂登录二:58同城登录

285楼的执行网页脚本的方法非常值得学习,记得这是当初楼主的代码,我借花献佛,帮你阐述285的核心技术。

在内存中创建 htmlfile对象,再装入html脚本(只要是Javascript, jquery代码或链接地址)。当然事先将这些JS代码GET一下,装入本地缓存。 一般来讲,第二次get那些链接地址时(htmlfil加载时会自动get),系统默认直接从缓存中读取,这样的好处是,不会因为JS代码未加载完就执行JS函数。

Sub Main()
    Dim strHtml As String
    Dim objDoc As Object
    Dim objWin As Object
    Dim strScript As String
    Dim t
    Set objXML = CreateObject("MSXML2.XMLHTTP")
    arrJSFile = Array("http://code.jquery.com/jquery-1.10.2.min.js", "http://www.veryhuo.com/uploads/Common/js/jQuery.md5.js") '要加载的js文件名
   
    '先下载JS文件到缓存(GET请求一次即可),以提高DOM加载JS文件的速度。(否则加载会有延迟)
    For i = 0 To 1
        objXML.Open "GET", arrJSFile(i), False
        objXML.Send
    Next
   
    strHtml = "<!DOCTYPE html><html><head>"
    strHtml = strHtml & "<script src='http://code.jquery.com/jquery-1.10.2.min.js'></script>"
    strHtml = strHtml & "<script src='http://www.veryhuo.com/uploads/Common/js/jQuery.md5.js'></script>"
    strHtml = strHtml & "</head></html>"
   
    Set objDoc = CreateObject("htmlfile")
    objDoc.write strHtml
    Set objWin = objDoc.parentWindow
    strScript = "var md = $.md5('我爱你中国!')"

    objWin.execScript strScript, "JavaScript" '执行JS函数
    Debug.Print objWin.md
    Set objXML = Nothing
End Sub

点评

http://blog.csdn.net/a814153a/article/details/9329125 这不是蓝天的吗  发表于 2014-10-31 15:41
大部分都是出自这里:http://blog.csdn.net/a814153a/article/details/9329125 看原帖下面弦月大师的点评  发表于 2014-10-31 15:26

TA的精华主题

TA的得分主题

发表于 2014-10-31 15:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢分享,留个脚印,支持吴姐

TA的精华主题

TA的得分主题

发表于 2014-10-31 16:43 | 显示全部楼层
本帖最后由 153091086 于 2014-10-31 17:13 编辑
153091086 发表于 2014-10-30 21:36
按教程去抓取”http://epub.cnki.net/kns/brief/result.aspx?dbPrefix=CJFQ“论文列表数据,总是出现这个提 ...


吴姐,基本搞定了,模拟了Cookie, 但还是有点问题,出来的数据好像不全呢。

TA的精华主题

TA的得分主题

发表于 2014-10-31 17:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
153091086 发表于 2014-10-30 21:36
按教程去抓取”http://epub.cnki.net/kns/brief/result.aspx?dbPrefix=CJFQ“论文列表数据,总是出现这个提 ...

吴姐,基本已搞定了,但出即时窗口里面显示的抓包数据不全,怎么回事呀?

点评

立即窗口只能显示一定量的字符。超过这个字符数的就被从头上截掉了。我贴子里有说的。  发表于 2014-11-1 10:23

TA的精华主题

TA的得分主题

发表于 2014-10-31 20:37 | 显示全部楼层
wcymiss 发表于 2014-10-21 21:55
获取数据-防盗链的处理-模拟Cookie:

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

这就不懂了,两个cookie  的值不是一样的吗????执行同样的动作,同样的值,怎么就因为家了那个getAllResponseHeaders   所以就可以自动登录   前者就不行?

点评

你在立即窗口看下每次的cookie是否是一样  发表于 2014-11-1 10:25

TA的精华主题

TA的得分主题

发表于 2014-11-1 00:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
kangatang 发表于 2014-10-31 14:57
285楼的执行网页脚本的方法非常值得学习,记得这是当初楼主的代码,我借花献佛,帮你阐述285的核心技术。 ...

我看到返回的都是string类型,如何返回引用类型?例如数组等?

TA的精华主题

TA的得分主题

发表于 2014-11-1 00:09 来自手机 | 显示全部楼层
etsure 发表于 2014-11-1 00:07
我看到返回的都是string类型,如何返回引用类型?例如数组等?

看立即窗口
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-12-24 03:30 , Processed in 0.050171 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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