c#抓取网页数据(计算机语言获取交互信息的爬虫经历-删除线格式#)

优采云 发布时间: 2021-10-12 15:14

  c#抓取网页数据(计算机语言获取交互信息的爬虫经历-删除线格式#)

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

  在实际工作需求中,编辑的文档需要获取历史地震信息,因此使用计算机语言获取是简化人工操作的必要过程。本文分享我第一次爬虫获取交互信息的经验!

  操作流程 我要获取的信息如下图所示。通过填写不同的日期、经纬度、震级等,我可以搜索到想要的结果。

  

  一开始,没有任何线索。查看网页的源代码无法找到搜索结果,所以我们首先要做的就是找到数据的位置。第一步:右键查看元素,点击网络,会出现下图所示的两个文件:

  

  点击第一个文件,看到它的预览有我们想要的信息。Response 收录这部分代码,也就是我们想要的数据:

  

  

  第二部分:查找URL、请求方法和参数。这部分信息收录在标题中:

  

  

  第三步: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);

  下一步是阅读网页的内容。这是第一次写。感谢您的批评和指正!!!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线