c#抓取网页数据(计算机语言获取交互信息的爬虫经历-删除线格式#)
优采云 发布时间: 2021-10-12 15:14c#抓取网页数据(计算机语言获取交互信息的爬虫经历-删除线格式#)
删除线格式#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);
下一步是阅读网页的内容。这是第一次写。感谢您的批评和指正!!!