ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] VBA如何抓取指定网址中的特定数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-8-30 15:06 | 显示全部楼层
马行空_0314 发表于 2024-8-30 12:01
朋友好,可以试试我的账号,不过也是一个普通账户

账户:18117339097

1.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-9-4 09:57 | 显示全部楼层
感谢上面各位的帮忙指点,看了B站的视频,需要一定解析操作,等有时间了慢慢看b站视频学习吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-9-11 14:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

感谢老师帮忙指点,帮忙看看,我执行的时候,提示下面send()里面的部分 编译错误 语法错误,这是什么原因?



Sub iwencai()
    Dim req As Object
    Dim url As String
    Dim sText As String
    url = "http://www.iwencai.com/customized/chart/get-robot-data"
    Set req = CreateObject("WinHttp.WinHttpRequest.5.1")
   
    With req
    .Open "POST", url, False
     'With CreateObject("MSXML2.XMLHTTP")     'With CreateObject("WinHttp.WinHttpRequest.5.1")
          .setRequestHeader "Accept", "application/json, text/plain, */*"
          .setRequestHeader "Accept-Encoding", "gzip, deflate"
          .setRequestHeader "Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8"
          .setRequestHeader "Cache-control", "no-cache"
          .setRequestHeader "Content-Length", "395"
          .setRequestHeader "Content-Type", "application/json"
          .setRequestHeader "Cookie", "other_uid=Ths_iwencai_Xuangu_la2t8t5hnkc0u1rz6scwiee7fi624em8; ta_random_userid=5xmeowibra; wencai_pc_version=0; cid=e420547b04a22300b6c4e73349a9e9331693281844; ComputerID=e420547b04a22300b6c4e73349a9e9331693281844; WafStatus=0; v=A4Ud8DaMT-Xcd2u5wY9fChzmlMq6QjnUg_YdKIfqQbzLHqs0T5JJpBNGLf8U"
          .setRequestHeader "hexin-v", "A4Ud8DaMT-Xcd2u5wY9fChzmlMq6QjnUg_YdKIfqQbzLHqs0T5JJpBNGLf8U"
          .setRequestHeader "Host", "www.iwencai.com"
          .setRequestHeader "Origin", "http://www.iwencai.com"
          .setRequestHeader "Pragma", "no-cache"
          .setRequestHeader "Proxy-Connection", "keep-alive"
          .setRequestHeader "Referer", "http://www.iwencai.com/unifiedwap/result?w=9%3A40%E6%B6%A8%E5%B9%85%E5%A4%A7%E4%BA%8E%E6%88%96%E7%AD%89%E4%BA%8E5%25%EF%BC%8C%E9%9D%9E%E5%8C%97%E4%BA%A4%E6%89%80&querytype=stock"
          .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 HBPC/12.1.3.310"
         
          .send ("{"source":"Ths_iwencai_Xuangu","version":"2.0","query_area":"","block_list":"","add_info":"{\"urp\":{\"scene\":1,\"company\":1,\"business\":1},\"contentType\":\"json\",\"searchInfo\":true}","question":"9:40涨幅大于或等于5%,非北交所","perpage":50,"page":1,"secondary_intent":"stock","log_info":"{\"input_type\":\"click\"}","rsh":"Ths_iwencai_Xuangu_la2t8t5hnkc0u1rz6scwiee7fi624em8"}")
         
          sText = responseText
         
         
          Debug.Print sText
         
         
End With



End Sub

TA的精华主题

TA的得分主题

发表于 2024-9-11 17:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
马行空_0314 发表于 2024-9-11 14:48
感谢老师帮忙指点,帮忙看看,我执行的时候,提示下面send()里面的部分 编译错误 语法错误,这是什么原 ...

如果你搞不清哪里应该用两个双引号,哪里用一个双引号,那就把字符串放在单元格里.send([a1])

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-9-15 20:39 | 显示全部楼层
用fiddler找到了发送的请求地址,截图红框中的“为你找到17天结果”中的17就是我想要抓的数字,但是为什么下面的代码不能返回包含这个结果的字段呢?

Sub 网抓4()
    Dim req As Object
    Dim url As String
    Dim sText As String

    url = "https://www.iwencai.com/customized/chart/get-robot-data"

    Set req = CreateObject("WinHttp.WinHttpRequest.5.1")

    With req
        .Open "POST", url, False
        .setRequestHeader "Accept", "application/json, text/plain, */*"
        .setRequestHeader "Accept-Language", "zh-CN,zh;q=0.9"
        .setRequestHeader "Cache-control", "no-cache"
        .setRequestHeader "Connection", "keep-alive"
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Cookie", "other_uid=Ths_iwencai_Xuangu_z79bszybmud9ircec4pp1pm0qysarh3u; ta_random_userid=90vkjm3zed; cid=a36570889a6593ceeb8b219cdd7eb5c51724999707; v=A48vs2kFNVcOZTGr_JonETjpHiiItOPWfQjnyqGcK_4FcKHUqYRzJo3YdxCy"
        .setRequestHeader "Host", "www.iwencai.com"
        .setRequestHeader "Origin", "https://www.iwencai.com"
        .setRequestHeader "Pragma", "no-cache"
        .setRequestHeader "Referer", "https://www.iwencai.com/unifiedwap/result?w=9:30涨幅大于或等于5%,非北交所&querytype=stock"
        .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36"
        .setRequestHeader "hexin-V", "AzKSCKTSgJz7arygQS2yas22g3MFwzZdaMcqgfwLXuXQj9wv5FOGbThXepbP"

        ' JSON payload for the POST request
        Dim jsonPayload As String
        jsonPayload = ThisWorkbook.Sheets(1).Range("A13").Value
        
        Debug.Print jsonPayload
        
        
        
        .Send jsonPayload
        
        sText = .responseText
    End With
   
    Debug.Print sText

    ' 在此处添加处理响应文本 (sText) 的代码
End Sub


其中

下面的请求地址我放在了A13单元格

{"source":"Ths_iwencai_Xuangu","version":"2.0","query_area":"","block_list":"","add_info":"{\"urp\":{\"scene\":1,\"company\":1,\"business\":1},\"contentType\":\"json\",\"searchInfo\":true}","question":"9:30涨幅大于或等于5%,非北交所","perpage":"100","page":1,"secondary_intent":"stock","log_info":"{\"input_type\":\"click\"}","rsh":"Ths_iwencai_Xuangu_77ysuy7dvarvk9q3a874qpm3oqvbrayy"}


VBA返回下面的字段,请高手大神帮忙看看是什么意思,怎么调整程序

{"source":"Ths_iwencai_Xuangu","version":"2.0","query_area":"","block_list":"","add_info":"{\"urp\":{\"scene\":1,\"company\":1,\"business\":1},\"contentType\":\"json\",\"searchInfo\":true}","question":"9:30涨幅大于或等于5%,非北交所","perpage":"100","page":1,"secondary_intent":"stock","log_info":"{\"input_type\":\"click\"}","rsh":"Ths_iwencai_Xuangu_77ysuy7dvarvk9q3a874qpm3oqvbrayy"}
<h1>Nginx forbidden.</h1> <br/>request info: 114.86.130.0

fiddler截图.png

TA的精华主题

TA的得分主题

发表于 2024-9-17 19:34 | 显示全部楼层
本帖最后由 前进者 于 2024-9-17 19:42 编辑

把cookie注释掉,这句.setRequestHeader "hexin-V", "换成您自己抓包获取的字符串",测试成功!

问财网抓.rar

15.61 KB, 下载次数: 2

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-9-18 08:55 | 显示全部楼层
前进者 发表于 2024-9-17 19:34
把cookie注释掉,这句.setRequestHeader "hexin-V", "换成您自己抓包获取的字符串",测试成功!

感谢朋友帮忙测试,不过得到的信息还是下面一样的,看起来是被服务器拒绝访问了,估计是反爬虫的原因,没有得到我想要的选出A股的数量。还是说朋友你的程序能盘出来选出股票的数量?

{"source":"Ths_iwencai_Xuangu","version":"2.0","query_area":"","block_list":"","add_info":"{\"urp\":{\"scene\":1,\"company\":1,\"business\":1},\"contentType\":\"json\",\"searchInfo\":true}","question":"9:30涨幅大于或等于5%,非北交所","perpage":"100","page":1,"secondary_intent":"stock","log_info":"{\"input_type\":\"click\"}","rsh":"Ths_iwencai_Xuangu_77ysuy7dvarvk9q3a874qpm3oqvbrayy"}
<h1>Nginx forbidden.</h1> <br/>request info: 101.226.143.242
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 00:35 , Processed in 0.041613 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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