ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 网页采集(网页抓取)教程第二课-用WinHTTP提交Post,viewstate获取和URLEncode编码方法

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-7-17 14:50 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
kangatang 发表于 2012-7-17 14:25
公司电脑无法注册winhttp的组件,这个我只能旁听了。

该用什么组件替代呢?谢谢。

TA的精华主题

TA的得分主题

发表于 2012-7-17 14:56 | 显示全部楼层
kangatang 发表于 2012-7-17 14:50
该用什么组件替代呢?谢谢。

无法注册winhttp的组件?
就用下面的笨方法:

Sub 查看专业资质排名()
    On Error Resume Next
    With CreateObject("internetexplorer.application")
        .Visible = True
        .Navigate "http://www.gzgcjg.com/gzqypjtx/Estimate/ZY/MainQueryMarkZY.aspx?clearPaging=true"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        .Document.All("ctl00$cph_content$drpZzdj").Value = "jzzxzs"
        .Document.All("ctl00$cph_content$drpZzdj").onchange
        Do Until Trim(.Document.All.tags("table")(1).All.tags("tr")(1).All.tags("td")(1).innerText) <> "广东省基础工程公司"
            DoEvents
        Loop

        Set r = .Document.All.tags("table")(1).Rows
        n = Range("a65536").End(xlUp).Row
        For i = 0 To r.Length - 1
            For j = 0 To r(i).Cells.Length - 1
                Cells(i + 1 + n, j + 1) = r(i).Cells(j).innerText
            Next j
        Next i
        For k = 2 To 39
            n = Range("a65536").End(xlUp).Row
            .Document.All("ctl00$cph_content$GridViewPaging1$txtGridViewPagingForwardTo").Value = k
            .Document.All("ctl00$cph_content$GridViewPaging1$btnForwardToPage").Click
            Do Until .Document.All.tags("table")(1).All.tags("tr")(1).All.tags("td")(1).innerText <> Cells(n - 19, 2)
                DoEvents
            Loop
            Set r = .Document.All.tags("table")(1).Rows
            For i = 1 To r.Length - 1
                For j = 0 To r(i).Cells.Length - 1
                    Cells(i + n, j + 1) = r(i).Cells(j).innerText
                Next j
            Next i
        Next k
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-17 15:46 | 显示全部楼层
kangatang 发表于 2012-7-17 14:50
该用什么组件替代呢?谢谢。

我在第一课讲的组件都行。推荐用ServerXMLHTTP。

TA的精华主题

TA的得分主题

发表于 2012-7-17 17:46 | 显示全部楼层
楼主能否将代码放在一个excel文件了,方便我们调试。
另外EncodePostdata()应该是getPostData()吧。
这个函数比较通用,记下。

TA的精华主题

TA的得分主题

发表于 2012-7-17 17:53 | 显示全部楼层
这个可以在liucqa大侠全部课程上完后做个PDF汇总教程。。
全部收下学习 实践 一下。

TA的精华主题

TA的得分主题

发表于 2012-7-17 18:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 引子玄 于 2012-7-17 19:40 编辑

学员状况个例反馈:有点催眠了{:soso_e193:}~~习惯了用IE,习惯了用QueryTables,想一下子接轨大师,感觉还真有点难,预计自己会掉下队来。
POST比GET在技术操作上要难很多,没想错了的话,应该是属于后期教程。
教学是一门高级艺术,课程安排得好,学员学起来会事半功倍。(如果教学者曾经有过教学经历和管理经历,在针对性和普遍性问题的处理上,都会很注重把握的)
做好一个教学不容易,做好一个开拓创新性的网抓项目教学,则更不容易了。继续支持楼主的网抓作品。
至于俺自己,学网抓还是先学会走路起,然后再想办法跑起来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-17 18:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 liucqa 于 2012-7-17 18:34 编辑
引子玄 发表于 2012-7-17 18:21
学员状况个例反馈:有点催眠了~~习惯了用IE,习惯了用QueryTables,想一下子接轨大师,感觉还真 ...

IE抓包不是俺的长项,等蓝天写教程吧。由于IE为第三方应用程序,VBA无法控制其行为,特别是在网页有错误的情况下。

QueryTables取得网站数据的能力很弱,一般不使用。

通常意义上所说的网络采集和网页抓取,都不使用这两种方法。

TA的精华主题

TA的得分主题

发表于 2012-7-17 18:36 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-17 18:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
李巴 发表于 2012-7-17 18:36
第一课在哪呀,我要扣

看一楼            

TA的精华主题

TA的得分主题

发表于 2012-7-17 22:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
...上充裕的时间、坚定的信念、充分的耐心和一点点运气...
说的太贴切了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-27 05:53 , Processed in 0.033268 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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