ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 小白也抓网——分享网抓作品

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-2 08:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
onlycxb 发表于 2014-11-2 07:54
全是百度网页,最好多换几个网页抓抓。

慢慢来,先找实用的,规律强的练手

TA的精华主题

TA的得分主题

发表于 2014-11-2 11:54 | 显示全部楼层
本帖最后由 blanksoul12 于 2014-11-2 12:37 编辑

是不是先在  http://fenxi.310v.net/odds_pic/p ... &company_id=397 取出 [BPK] 作指引,再在 http://fenxi.310v.net/data/panlu ... .js?d=1414899254592 取出數據,用第二個數對回BPK的代號呢? 升降應該是用前一個作比對而得出的.

TA的精华主题

TA的得分主题

发表于 2014-11-2 12:12 | 显示全部楼层
renahu 发表于 2014-11-2 08:36
慢慢来,先找实用的,规律强的练手

抓取数据是很基础的,有空多研究一下识别验证码什么的更好

TA的精华主题

TA的得分主题

发表于 2014-11-2 15:42 | 显示全部楼层
renahu 发表于 2014-11-2 08:10
呵呵,够复杂的,除了抓出数据,大小球盘口还要进行判断,然后取值,对这些数据意思一点不懂啊,比如: ...

网抓,即是考验取数据能力,也是考验数据能力。学生仍需要努力!

TA的精华主题

TA的得分主题

发表于 2014-11-2 17:35 | 显示全部楼层
本帖最后由 blanksoul12 于 2014-11-2 18:33 编辑
  1. Sub Main() '主體代碼
  2.     Dim strText As String, crr(), drr()
  3.     Top = Array("大球", "大小球盤口", "小球", "變化時間")
  4.     Sheet1.Cells.Clear
  5.     Sheet1.[a1].Resize(1, 4) = Top
  6.     With CreateObject("MSXML2.XMLHTTP")
  7.         .Open "GET", "http://fenxi.310v.net/odds_pic/panlu.html?match_id=939357&company_id=397", False
  8.         .send
  9.         strText = Split(Split(.responseText, "var BPK = [];")(1), "function sort_pk(d1,d2)")(0)
  10.         arr = Split(strText, ";")
  11.         For i = 0 To UBound(arr) - 1
  12.             arr(i) = Replace(Replace(arr(i), "BPK[" & i + 1 & "]=[", ""), "]", "")
  13.             ReDim Preserve drr(i)
  14.             drr(i) = Split(arr(i), ",")(1)
  15.         Next
  16.         .Open "GET", "http://fenxi.310v.net/data/panlu/panlu/939/b939357_397.js?d=1414914106552 ", False
  17.         .send
  18.         strText = Split(.responseText, "d3=[];")(1)
  19.         brr = Split(strText, ";")
  20.         brr(0) = Replace(brr(0), "d3[0]=", "d3.push(") & ")"
  21.         For i = 0 To UBound(brr) - 1
  22.             brr(i) = Replace(Replace(brr(i), "d3.push(""", ""), """)", "")
  23.             ReDim Preserve crr(0 To UBound(brr), 0 To 4)
  24.             For x = 0 To 4
  25.                 crr(i, x) = Split(brr(i), ",")(x)
  26.             Next
  27.             crr(i, 1) = drr(crr(i, 1) - 1)
  28.         Next
  29.     End With
  30.     Sheet1.[a2].Resize(UBound(crr), 4) = crr()
  31.    
  32. End Sub
复制代码
又是笨笨的代碼,請問那些數據是否可以用JAVA分開呢?

点评

将ReDim Preserve crr(0 To UBound(brr) - 1, 0 To 4) 改成ReDim Preserve crr(0 To UBound(brr) , 0 To 4) 数据就不会漏采了。  发表于 2014-11-2 18:19
XMLHTTP对象法的代码写得好!采集后漏了一行数据需补正。  发表于 2014-11-2 18:02

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-2 19:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-11-2 20:03 | 显示全部楼层
本帖最后由 引子玄 于 2014-11-15 13:56 编辑

.....................

TA的精华主题

TA的得分主题

发表于 2014-11-2 21:16 | 显示全部楼层
引子玄 发表于 2014-11-2 20:03
本来我也是想学习吴姐的使用fiddler工具来搞XMLHTTP对象抓取的,但是越看越怕,又是安装和学会使用f ...

     吴姐教程很实用.在多次抓网过程中再读吴姐教程,会更多一些感悟。很多基础和经验都是长期积累得出来的,所以感觉教程很实用。看教程至今还未过半,因为仍在对前面介绍知识进行细细感悟,勤加练习,以求渐解,不敢轻易加快进度。

TA的精华主题

TA的得分主题

发表于 2014-11-2 21:46 | 显示全部楼层
谢谢楼主捧场,能帮到你我也很高兴。

提点小建议:

代码中的“url = url & "&wd=%E5%A4%A7%E5%AD%A6"”,后面的“%E5%A4%A7%E5%AD%A6”可以用javascript的encodeURI或encodeURIComponent函数转换。

你还可以变动一下其他参数或者增减一些参数,看看responsetext的变化。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-2 22:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
blanksoul12 发表于 2014-11-2 17:35
又是笨笨的代碼,請問那些數據是否可以用JAVA分開呢?

数据提取能力真强,repace和split用得真熟,受益匪浅
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 03:48 , Processed in 0.039315 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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