紧急求助啊,asp.net用HtmlAgilityPack,爬取数据

man_wangweii 2019-09-10 11:56:46
网址为:https://quote.fx168.com/rmb_spot/

人民币外汇即期报价中的数据
...全文
1617 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_45635011 2019-09-16
  • 打赏
  • 举报
回复
爬取数据我只用运营商
「已注销」 2019-09-13
  • 打赏
  • 举报
回复
引用 3 楼 娃都会打酱油了 的回复:

F12看下也知道加载了哪些啊……
话说你怎么发的图
文盲老顾 2019-09-12
  • 打赏
  • 举报
回复
文盲老顾 2019-09-12
  • 打赏
  • 举报
回复
其实,只要能在网络上显示出来的东西,基本上都可以采集,只不过防采集的手段不一样而已 一般来说,通过伪造header、refer、cookie、post参数等方式,都可以采集到
文盲老顾 2019-09-12
  • 打赏
  • 举报
回复
伪造了refer和cookie后,可以获取值 伪造的refer 为 https://dataapi.2rich.net/Quote/Quote.aspx?Page=fx168-rmb-jq 伪造的cookie有四个,targetEncoding//qizhen88com,_fxaid,_ga,_gid,自己用浏览器查看具体cookie值,记得伪造cookie的时候,加上domain,值是 .fx168.com 然后,以post方式采集,post的表单数据就是page=fx168-rmb-jq&vtype=XHWH
stherix 2019-09-12
  • 打赏
  • 举报
回复
引用 8 楼 man_wangweii 的回复:
[quote=引用 7 楼 Chyun8898g的回复:]数据地址: https://dataapi.2rich.net/Quote/handler/Datas.ashx?page=fx168-rmb-jq&vtype=XHWH
您好,我如何用xpath获取这个值呢,我用谷歌xpath-helper得到的路径,获取不了值[/quote] 直接用WebClient拉取这个地址的字符串 然后用逗号分开解析
文盲老顾 2019-09-12
  • 打赏
  • 举报
回复
好吧。没看最终输出数据的链接是否有防采集
by_封爱 2019-09-12
  • 打赏
  • 举报
回复
这玩意也不用伪造啊.. 一句话就搞定了.

var data=new webclient().downloadstring("https://dataapi.2rich.net/Quote/handler/Datas.ashx?page=fx168-rmb-jq&vtype=XHWH");
跟HtmlAgilityPack没任何关系.. HtmlAgilityPack是分析html的, 你这个接口直接请求 就返回数据了..而且也不是json也不是xml 就是字符串.. 所以你要做的 就是解析这个字符串即可.. 接下来 我们看一下这个数据结构
引用
drop-CNYBA,美元/人民币,7.0856,7.0862,-0.0308,-0.43,16:12:30,# drop-HKCNBA,港币/人民币,0.90501,0.90510,-0.00281,-0.31,16:12:30,# drop-YNCNBA,100日元/人民币,6.5682,6.5688,-0.0388,-0.59,16:12:30,# drop-ERCNBA,欧元/人民币,7.8115,7.8116,-0.0147,-0.19,16:12:30,# drop-UKCNBA,英镑/人民币,8.7346,8.7355,-0.0404,-0.46,16:12:30,# drop-ADCNBA,澳元/人民币,4.8787,4.8794,-0.0016,-0.03,16:12:30,# drop-CDCNBA,加元/人民币,5.3753,5.3758,-0.0237,-0.44,16:12:30,# drop-CNMYBA,人民币/林吉特,0.58385,0.58850,-0.00114,-0.19,16:12:30,# drop-CNRUBA,人民币/卢布,9.1819,9.1912,-0.0043,-0.05,16:12:30,# rise-NZCNBA,新西兰元/人民币,4.5664,4.5671,0.0010,0.02,16:12:30,# drop-SGCNBA,新加坡元/人民币,5.1536,5.1542,-0.0031,-0.06,16:12:30,# drop-SFCNBA,瑞郎/人民币,7.1509,7.1522,-0.0127,-0.18,16:12:30,# drop-CNZRBA,人民币/南非兰特,2.0614,2.0620,-0.0107,-0.52,16:12:30,# drop-CNKWBA,人民币/韩元,166.70,166.89,-0.79,-0.47,16:12:30,
看起来还是很有规则的.. 没个#是一行. 你分割一下. 然后根据,来获取你里面的值 去构造你想要的List<T> 当然了 这是我们自己想的.. 我们接下来去验证一下. 既然人家请求这个接口 并且呈现了 肯定有代码吧. 你找一下之后 发现引用了 https://dataapi.2rich.net/Quote/js/default.js 其中在65行 就写了 var datarow = data.split('#'); 所以肯定就验证了我的说法. 每个列都是什么含义都有说明 自己看一下 稍微有点js基础 我觉得基本都可以解析出来.
man_wangweii 2019-09-11
  • 打赏
  • 举报
回复



excel 别人用这个代码可以取到,.net 不知道怎么取啊
man_wangweii 2019-09-11
  • 打赏
  • 举报
回复
引用 2 楼 娃都会打酱油了 的回复:

F12看下也知道加载了哪些啊……



是的,xpath 取不到,您有办法取的到吗
stherix 2019-09-11
  • 打赏
  • 举报
回复
它的iframe网址全部有保护,直接访问不了 以前我写的一个爬虫框架,是用CEFSharp+FiddlerCore 把CEF的代理设置为FiddlerCore,然后去访问指定网站 这样FiddlerCore可以捕获到所有交互数据,怎么搞防爬措施都没用
  • 打赏
  • 举报
回复

F12看下也知道加载了哪些啊……
  • 打赏
  • 举报
回复
按frame对应的url模拟加载对应的网址啊,难道你想简单的一个页面就有全部数据?
stherix 2019-09-11
  • 打赏
  • 举报
回复
它的页面里面包含很多iframe,直接是抓不出来的,那些表格都是在iframe里
man_wangweii 2019-09-11
  • 打赏
  • 举报
回复
引用 10 楼 Chyun8898g的回复:
[quote=引用 8 楼 man_wangweii 的回复:]
[quote=引用 7 楼 Chyun8898g的回复:]数据地址: https://dataapi.2rich.net/Quote/handler/Datas.ashx?page=fx168-rmb-jq&vtype=XHWH

您好,我如何用xpath获取这个值呢,我用谷歌xpath-helper得到的路径,获取不了值[/quote]
没必要用HtmlAgilityPack,直接正则匹配就行了[/quote] 问题是那串值我都获取不了,您能帮我写个取值吗,然后正则吗,分都给您
Chyun8898g 2019-09-11
  • 打赏
  • 举报
回复
引用 8 楼 man_wangweii 的回复:
[quote=引用 7 楼 Chyun8898g的回复:]数据地址: https://dataapi.2rich.net/Quote/handler/Datas.ashx?page=fx168-rmb-jq&vtype=XHWH

您好,我如何用xpath获取这个值呢,我用谷歌xpath-helper得到的路径,获取不了值[/quote]
没必要用HtmlAgilityPack,直接正则匹配就行了
大鱼> 2019-09-11
  • 打赏
  • 举报
回复
爬取数据我一般用Python
man_wangweii 2019-09-11
  • 打赏
  • 举报
回复
引用 7 楼 Chyun8898g的回复:
数据地址: https://dataapi.2rich.net/Quote/handler/Datas.ashx?page=fx168-rmb-jq&vtype=XHWH
您好,我如何用xpath获取这个值呢,我用谷歌xpath-helper得到的路径,获取不了值
Chyun8898g 2019-09-11
  • 打赏
  • 举报
回复
数据地址: https://dataapi.2rich.net/Quote/handler/Datas.ashx?page=fx168-rmb-jq&vtype=XHWH

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧