曼城足球论坛技术论坛

找回密码
收费注册

QQ登录

只需一步,快速开始

EH摸索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手风趣讲函数 足球任职器-会足球,做管理体例 足球 Home精品图文教程库
足球不给力? 何不试试FoxTable! 足球 2016函数公式学习大典 Office知识技巧收费学 制造核心竞争力的职场宝典
Tableau-数据可视化工具 曼城足球论坛出品 - VBA代码宝收费下载
你的足球 2010实战技巧学习锦囊 不能自休, 过目难忘的 Office 新界面 足球 VBA经典代码实施指南
察看: 390833 | 回复: 1441
打印 上一主题 下一主题

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

[复制链接]

TA的精华主题

TA的得分主题

跳转到指定楼层
1
公告于 2014-10-21 11:12 | 只看该作者 | 只看大图 回帖奖励 | 倒序观赏 | 阅读形式
本帖已被收录到知识树中,索引项: 网页交互
本帖末了由 wcymiss 于 2014-11-1 09:24 编辑

本帖主要针对的是不懂html的网抓新手。本帖基本不谈原理,只说实战

学网抓对vba的要求:
1、了解对象及对象属性方法的基本概念;
2、纯熟使用循环、剖断及vba数组;
3、掌握一种以上提取文本的方法。
4、会调试代码,会用立即窗口、当地窗口。(很重要。
5、有录制宏的经验。

可以这样说,有点耐性,足球直播论坛。再对网抓有点兴趣,只要你具备上述vba知识。

我自己开始用xmlhttp和fiddler的时刻,有了兴趣,全是如法炮制。足球直播论坛。画获胜后,对get、post也不懂,对html和javascript是一无所知的。

学习html强力推举此网站: ,绝对巨子

==================================================,足球直播论坛。
借使出现楼主有写错的场合,或是有看不懂、不理解的场合,足球社区。或是运行出错、运行效果与楼主不同,或是概念吞吐,或是用错术语。
愿望在群众的扶持和建议下完整本帖,让不会网抓的伴侣由此贴学会写一些基础的网抓代码。

谢谢群众!



补充形式 (2014-11-5 19:37):
交流QQ群

评分

参与人数 68 财富 +300 鲜花 +133 技术 +3 微积分 +10 收起 理由
xfyanmeng + 2 太壮健了
小小寒 + 2 感激扶持
引领自己 + 4 感激扶持
大冬瓜730 + 2 感激扶持
明月楼高可带刀 + 2 优秀作品

察看总计评分

TA的精华主题

TA的得分主题

推举
楼主 | 公告于 2014-10-25 10:43 | 只看该作者
本帖末了由 wcymiss 于 2014-10-27 13:07 编辑

管制table
table数据管制,除了之前的两种通用方法外。

1、html法
将table数据写入htmldocument对象。
优点:可以利用htmldocument对象整理表格。
缺点:需要学习html相关知识。
17楼作业二为例:
  1. Sub Main()
  2. Dim strText As String
  3. Dim arrData(1 To 1000, 1 To 3)
  4. Dim i As Long, j As Long
  5. Dim TR As Object, TD As Object

  6. With CreateObject("MSXML2.XMLHTTP")
  7. .Open "POST", "#otherUrl;, False
  8. .setRequestHeader "Content-Type", "application/json"
  9. .Send "{pageindex:'1',lottory:'TC7XCData_jiangS',pl3:'',name:'江苏七星彩',isgp: '0'}"
  10. strText = Split(JSEval(.responsetext), "
  11. End With

  12. With CreateObject("htmlfile")
  13. .write strText
  14. i = 0
  15. For Each TR In .all.tags("table")(2).Rows
  16. i = i + 1
  17. j = 0
  18. For Each TD In TR.Cells
  19. j = j + 1
  20. arrData(i, j) = TD.innerText
  21. Next
  22. Next
  23. End With

  24. Set TR = Nothing
  25. Set TD = Nothing
  26. Cells.Clear
  27. Range("C:C").NumberFormat = "@" '设置文本格式以炫夸数字后面的0
  28. Range("a1").Resize(i, 3).Value = arrData
  29. End Sub

  30. Function JSEval(s As String) As String
  31. With CreateObject("MSScriptControl.ScriptControl")
  32. .Language = "javascript"
  33. JSEval = .Eval(s)
  34. End With
  35. End Function
复制代码
2、QueryTable法:
这个是excel自带的网抓利器。小我觉得它最大的优势就是管制table很便利。足球社区。
优点:管制table便利。
缺点:会爆发定义称号。多页循环时每页都会爆发行字段称号。
仍以作业一的第1题为例:
  1. Sub Main()
  2. Cells.Delete
  3. With ActiveSheet.QueryTables.Add("url;#otherUrl;, Range("a1"))
  4. .WebFormatting = xlWebFormattingNone '不蕴涵格式
  5. .WebSelectionType = xlSpecifiedTables '指定table形式
  6. .WebTables = "2" '第2张table
  7. .Refresh False
  8. End With
  9. End Sub
复制代码
代码相当简短。


3、复制粘贴法:
table局限的文字可以直接复制到单元格内。
优点:只需取出table局限。
缺点:有时格式反而是累赘。
  1. Sub Main()
  2. Dim strText As String
  3. With CreateObject("MSXML2.XMLHTTP")
  4. .Open "GET", "#otherUrl;, False
  5. .Send
  6. strText = .responsetext
  7. End With
  8. strText = "")(0) & "
"
  • CopyToClipbox strText
  • Cells.Clear
  • Range("a1").Select
  • ActiveSheet.Paste
  • End Sub

  • Sub CopyToClipbox(strText As String)
  • '文本拷贝到剪贴板
  • With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
  • .SetText strText
  • .PutInClipboard
  • End With
  • End Sub
  • 复制代码
    小贴士:
    点击Fiddler的Response框的WebView按钮可以看到HTML代码在网页上的炫夸效果。,第一足球网论坛。

    评分

    参与人数 9 鲜花 +14 收起 理由
    wuxianyu86 + 2 优秀作品
    liyanghu + 2 太壮健了
    松叶落 + 1 优秀作品
    x-xx-xx + 1 值得肯定
    逃亡雨 + 1 优秀作品

    察看总计评分

    TA的精华主题

    TA的得分主题

    3
    楼主 | 公告于 2014-10-21 11:15 | 只看该作者

    点评

    “Fiddler抓取法” 公告于 2014-10-23 13:02
    比我习性好,代码也是渐渐繁荣的,我想到哪写到哪。 公告于 2014-10-22 19:22

    评分

    参与人数 16 鲜花 +31 收起 理由
    liangdinghu + 2 优秀作品
    逃亡雨 + 1 太壮健了
    lengyff + 2 太壮健了
    周星骋 + 2 平生不识wcymiss,纵称英雄也白费。
    jinbinghao + 2 太壮健了,最重要的是讲的还好!

    察看总计评分

    TA的精华主题

    TA的得分主题

    4
    楼主 | 公告于 2014-10-21 11:25 | 只看该作者
    本帖末了由 wcymiss 于 2014-10-31 10:36 编辑

    vba网抓常用方法:

    1、xmlhttp/winhttp法:
    用xmlhttp/winhttp模仿向任职器发送要求。
    优点:效率高,基本无兼容性题目。
    缺点:需要借助如fiddler的工具来模仿http要求。

    2、IE/webbrowser法:
    建树IE控件或webbrowser控件,模仿观赏器操作,结合htmlfile对象的方法和属性。
    优点:这个方法可以模仿大局限的观赏器操作。所见即所得。
    缺点:各种弹窗相当烦人。

    3、QueryTables法:
    因为它是excel自带,也是GET或POST方式发送要求,足球社区互动。所以委曲也算是一种方法。其实此法和xmlhttp类似。
    优点:excel自带。管制table很便利。代码简短。
    缺点:无法模仿referer等发包头(借使你有在QT中模仿referer的方法。

    本帖主要讲述的是第一种方法。

    评分

    参与人数 9 鲜花 +19 收起 理由
    yes + 2 优秀作品
    liangdinghu + 2 太壮健了
    YZC51 + 2 优秀作品
    周星骋 + 2 平生不识wcymiss,纵称英雄也白费。
    335081548 + 2 值得肯定

    察看总计评分

    TA的精华主题

    TA的得分主题

    5
    楼主 | 公告于 2014-10-21 11:33 | 只看该作者
    小我偏爱fiddler的原因:(唠叨话。

    1、fiddler不需要寄生在观赏器中。
    2、除了抓观赏器,一些联网的软件的要求数据过程也能抓到。足球不懂html也来学网抓(足球直播论坛xmlhttp/winhttp+fiddler)。如QQ。(据说网游也可以。
    3、fiddler还能记录vba代码运行时的数据要求过程。
    4、界面明晰。
    5、还可以手工在fiddler里模仿发包,获取数据。

    评分

    参与人数 7 鲜花 +17 收起 理由
    wanhaha1994 + 1 感激扶持
    黄金万两︶ㄣ + 2 优秀作品
    wuzaijin2012 + 2 优秀作品
    周星骋 + 2 平生不识wcymiss,纵称英雄也白费。
    ghostjiao + 2 优秀作品

    察看总计评分

    TA的精华主题

    TA的得分主题

    6
    公告于 2014-10-21 11:40 | 只看该作者
    哇哇哇,吴女神,女神出现了,赶快保藏了

    TA的精华主题

    TA的得分主题

    7
    楼主 | 公告于 2014-10-21 11:45 | 只看该作者
    fiddler的装配、设置、使用
    装配:
    下载链接:

    3、菜单栏:Tools-Fidder Options-HTTPS,曼城足球论坛技术论坛。勾选"Capure HTTPS CONNECTs"、"Decrypt HTTPS traffic"、"Ignore server certificate,足球。
    errors"。(获取https包并忽略信任舛误)



    使用:
    fiddler抓包有点类似excel里的录制宏。

    抓包程序如下:
    1、为确保fiddler抓到完整的数据包。
    不要用fiddler上的按钮“Clear Cache ” 。
    2、掀开fiddler,fiddler的左半边框框内的数据就是抓到的包。为了fiddler不受之后网页操作的影响,不懂。进入fiddler,在网页里做所需操作。操作完毕后,输出网址,然后掀开观赏器。

    fiddler抓包界面简单解析:
    1、左边的是session框,蕴涵所有的发送要求;下方是Response,html。右边菜单选择“Inspectors”后出现高低两个框:足球。上边是Request,选择该框随意一条数据。


    2、查找数据:
    抓到包后,session框里的数据太多。
    a、在fiddler里按ctrl+F,搜到后点击该session,直播。摸索所需某个对比有特征的数据。
    摸索框内可以选择摸索边界。


    b、在Response框下方的空白长条框里,再察看高低文,借使存在,论坛。确认其能否存在于该Response内,按回车,输出之前摸索的那个特征数据。
    这步很重要,借使数据页面确认错了。

    3、数据页面确认后。

    小贴士:
    特征字符尽量不要选择中文。




    补充形式 (2015-1-9 12:58):
    下载链接错了。

    点评

    额,下载链接打不开。 公告于 2014-11-4 14:52
    ,跟着贴渐渐学习吧。 公告于 2014-10-23 15:51

    评分

    参与人数 9 鲜花 +19 收起 理由
    猫猫小喵 + 2 优秀作品
    黄金万两︶ㄣ + 2 优秀作品
    周星骋 + 2 平生不识wcymiss,纵称英雄也白费。
    brightred + 2 优秀作品
    念一环 + 2 优秀作品

    察看总计评分

    TA的精华主题

    TA的得分主题

    8
    公告于 2014-10-21 11:49 | 只看该作者
    留個位置,愿望講解一下 FIDDER 用法及怎说明.

    TA的精华主题

    TA的得分主题

    9
    楼主 | 公告于 2014-10-21 12:47 | 只看该作者
    本帖末了由 wcymiss 于 2014-10-21 12:54 编辑

    Fiddler抓包并确认数据页面一例:

    网站:

    Fiddler操作:
    1、废除观赏器cookie、缓存、历史记录。
    2、掀开fiddler,掀开观赏器。
    3、选择数据中某一段数字作为特征字符串在fiddler里进行查找。




    4、找到后确认能否是所需数据页面。



    IF 摸索获胜 Then
    继续往下看。。。
    Else
    重新依据上述程序抓包
    End IF

    评分

    参与人数 7 鲜花 +14 收起 理由
    man_0037 + 2 优秀作品
    周星骋 + 2 平生不识wcymiss,纵称英雄也白费。
    zhao蓝 + 2 太壮健了
    念一环 + 2 优秀作品
    335081548 + 2 优秀作品

    察看总计评分

    TA的精华主题

    TA的得分主题

    10
    楼主 | 公告于 2014-10-21 12:51 | 只看该作者
    更多Fiddler的使用方法。
    电子书下载地址:

    TA的精华主题

    TA的得分主题

    11
    公告于 2014-10-21 12:52 | 只看该作者
    好的东西必需保藏记号!
    下一页 ?
    1 2 3 4 5 6 7 8 9 10 ... 117 下一页
    前往列表 发新帖
    您需要登录后才可以回帖 登录 | 收费注册

    本版积分规则

    封闭

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

    眷注官方微信,每天学会一个新技能

    手机版|关于我们|联系我们|曼城足球论坛

    GMT+8, 2020-9-7 12:06, Processed in 0. second(s),xmlhttp。 25 queries , Gzip On, MemCache On.

    Powered by Discuz! X3.4

    ? 1999-2021 Wooffice Inc.

    沪公网安备号 沪ICP备号

    本论坛言论纯属公告者小我意见,任何违背国度相关法律的言论。

    快速回复 前往顶部 前往列表