当前位置:   article > 正文

C#获取动态网页中的数据_c#抓取动态网页

c#抓取动态网页

删除线格式 # C#获取动态网页中的数据

在实际工作需求中,编辑的文档需要获取历史地震的信息,所以利用计算机语言获取是一个简化人工操作的必要过程,本文分享一下自己第一次获取交互信息的爬虫经历!

操作流程

我要获取的信息如下图,通过填入不同的日期、经纬度、震级等,搜索到想要的结果。

在这里插入图片描述

刚开始是没有头绪的,查看网页的源代码找不到搜索的结果,那么我们首先要做的是找到数据的位置。

第一步:通过右键审查元素,点击Network,会出现如下图所示的两个文件:

在这里插入图片描述

点击第一个文件,看到它的Preview有我们想要的信息,Response中含有这部分的代码,是我们想要的数据:

在这里插入图片描述
在这里插入图片描述

第二部:找到网址,请求方式和参数,这部分信息都包含在Headers中:

在这里插入图片描述在这里插入图片描述

第三步:C#编程获取网页

这里就直接上代码了
// An highlighted block
//url目标地址
string url = "网址";            
//要提交的数据
string postString = "DISPLAY_TYPE=1&PAGEID=earthquake_subao&catalog_ALLDATASETS_RECORDCOUNT=catalog__default_default_default_key__default_default_default_key%3D65%3B"
+"&refreshComponentGuid=earthquake_subao_guid_catalog&begtime=2019-09-10&endtime=2019-10-10"
+"&minM=3&maxM=10&minLon=-180.0&maxLon=180.0&minLat=-90.0&maxLat=90.0"
+"&minDepths=0&maxDepths=1000&SEARCHREPORT_ID=catalog&WX_ISAJAXLOAD=true";
//这里即为传递的参数,可以用工具抓包分析,也可以自己分析,主要是form里面每一个name都要加进来  
byte[] postData = Encoding.UTF8.GetBytes(postString);//编码,尤其是汉字,事先要看下抓取网页的编码方式  
WebClient webClient = new WebClient();
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");//采取POST方式必须加的header,如果改为GET方式的话就去掉这句话即可  
byte[] responseData = webClient.UploadData(url, "POST", postData);//得到返回字符流  
     
string srcString = Encoding.UTF8.GetString(responseData);//解码  
//解析获取到的网页
HtmlAgilityPack.HtmlDocument History_doc = new HtmlAgilityPack.HtmlDocument(); 
History_doc.LoadHtml(srcString);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

接下来就是网页中内容的读取了,第一次写,谢谢大家的批评指正!!!

下一篇:C#语言中string格式转json格式

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/399077
推荐阅读
相关标签
  

闽ICP备14008679号