C#抓取财经网站中股票成交明细数据,总是出错“找不到文件”

问题描述

未能找到文件“d:我的文档VisualStudio2010ProjectsWindowsFormsApplication7WindowsFormsApplication7binDebughtmlPUBLIC”。代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.IO;usingSystem.Net;usingSystem.Text.RegularExpressions;usingSystem.Windows.Forms;namespaceWindowsFormsApplication7{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();this.urlText.Text="http://vip.stock.finance.sina.com.cn/quotes_service/view/vMS_tradehistory.php?symbol=sz000725&date=2012-04-25";}publicstringGetPage(stringstrURL,stringstrReferer,stringcode){returnGetPage(strURL,strReferer,code,String.Empty);}publicstringGetPage(stringstrURL,stringstrReferer,stringcode,stringcontentType){stringstrResult="";HttpWebRequesthttpWebRequest=(HttpWebRequest)WebRequest.Create(strURL);httpWebRequest.AllowAutoRedirect=true;httpWebRequest.KeepAlive=false;httpWebRequest.Accept="*/*";httpWebRequest.Referer=strReferer;httpWebRequest.Headers.Add("Accept-Encoding","gzip,deflate");httpWebRequest.UserAgent="Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;Maxthon;.NETCLR2.0.50727)";if(string.IsNullOrEmpty(contentType)){httpWebRequest.ContentType="application/x-www-form-urlencoded";}else{httpWebRequest.ContentType=contentType;}httpWebRequest.Method="GET";if(httpWebRequest.CookieContainer==null){httpWebRequest.CookieContainer=newCookieContainer();}HttpWebResponseresponse=null;System.IO.StreamReadersr=null;response=(HttpWebResponse)httpWebRequest.GetResponse();StreamstreamReceive;stringgzip=response.ContentEncoding;if(string.IsNullOrEmpty(gzip)||gzip.ToLower()!="gzip"){streamReceive=response.GetResponseStream();}else{streamReceive=newSystem.IO.Compression.GZipStream(response.GetResponseStream(),System.IO.Compression.CompressionMode.Decompress);}sr=newSystem.IO.StreamReader(streamReceive,Encoding.GetEncoding(code));if(response.ContentLength>1){strResult=sr.ReadToEnd();}else{char[]buffer=newchar[256];intcount=0;StringBuildersb=newStringBuilder();while((count=sr.Read(buffer,0,buffer.Length))>0){sb.Append(newstring(buffer));}strResult=sb.ToString();}sr.Close();response.Close();returnstrResult;}protectedvoidGetPath()//获取存储文件路径{FolderBrowserDialogfilepath=newFolderBrowserDialog();if(filepath.ShowDialog()==DialogResult.OK){this.fileSave.Text=filepath.SelectedPath+@"";}}privatevoidbutton1_Click(objectsender,EventArgse){if(this.fileSave.Text==null||this.fileSave.Text.Equals("")){MessageBox.Show("请选择存储路径");return;}stringstr=GetPage(this.urlText.Text,"","gb2312");MatchCollectionmatches=Regex.Matches(str,"<a.*?/a>");MessageBox.Show(matches.ToString());foreach(Matchmtinmatches){if(mt.Groups[0].ToString().EndsWith("明细下载</a>")){str=mt.Groups[0].ToString();}}str=str.Substring(9);//MessageBox.Show(str);str=str.Substring(0,str.IndexOf("""));//MessageBox.Show(str);stringdt=System.DateTime.Now.ToString();dt=Regex.Replace(dt,"","-");dt=Regex.Replace(dt,"/","-");dt=Regex.Replace(dt,":","-");File.WriteAllBytes(this.fileSave.Text+dt+".xls",newWebClient().DownloadData(str));//stringmaindata=Encoding.UTF8.GetString(newWebClient().DownloadData(string.Format(str)));//MessageBox.Show(maindata);}privatevoidbutton2_Click(objectsender,EventArgse){GetPath();}privatevoidForm1_Load(objectsender,EventArgse){}}}

解决方案

解决方案二:
错误提示不就是指定文件没有检索到吗?
解决方案三:
哥们仔细看下你的正则有问题
解决方案四:
"明细下载"根本就不存在你所获取的源码里,这个是靠js输出的,我也没细看它是怎么获取的有可能是ajax,你可以自己抓包分析下

时间: 2024-10-21 08:20:49

C#抓取财经网站中股票成交明细数据,总是出错“找不到文件”的相关文章

正则-java如何抓取不同网站不同网页的内容

问题描述 java如何抓取不同网站不同网页的内容 请教大神们如何用java抓取不同网页(不同网站)相同属性的内容,如图: 用同一个java程序或正则一次性抓取图片上标注的内容(注:有很多这样的网页). 解决方案 内容一般在table或者div中,找出特征匹配,截取字符串就行了 解决方案二: 对于HTML标签,最好用XML解析类库,通过XPATH等方式来查找,这样简单,也不会容易出错,正则表达式处理这个比较麻烦,而且容易出错 解决方案三: 应该用到了,网络请求协议http!

Java爬虫抓取视频网站下载链接_java

本篇文章抓取目标网站的链接的基础上,进一步提高难度,抓取目标页面上我们所需要的内容并保存在数据库中.这里的测试案例选用了一个我常用的电影下载网站(http://www.80s.la/).本来是想抓取网站上的所有电影的下载链接,后来感觉需要的时间太长,因此改成了抓取2015年电影的下载链接. 一 原理简介 其实原理都跟第一篇文章差不多,不同的是鉴于这个网站的分类列表实在太多,如果不对这些标签加以取舍的话,需要花费的时间难以想象. 分类链接和标签链接都不要,不通过这些链接去爬取其他页面,只通过页底的

Java爬虫实战抓取一个网站上的全部链接_java

前言:写这篇文章之前,主要是我看了几篇类似的爬虫写法,有的是用的队列来写,感觉不是很直观,还有的只有一个请求然后进行页面解析,根本就没有自动爬起来这也叫爬虫?因此我结合自己的思路写了一下简单的爬虫. 一 算法简介 程序在思路上采用了广度优先算法,对未遍历过的链接逐次发起GET请求,然后对返回来的页面用正则表达式进行解析,取出其中未被发现的新链接,加入集合中,待下一次循环时遍历. 具体实现上使用了Map<String, Boolean>,键值对分别是链接和是否被遍历标志.程序中使用了两个Map集

网络爬虫-怎么使用pycharm来抓取旅游网站的信息

问题描述 怎么使用pycharm来抓取旅游网站的信息 通过网络爬虫爬取来自不同旅游网站的网页,同时需将网页内容进行分布式存储,然后对网页内容进行抽取和分析,提取其中的关键数据,包括但不限于线路编号.产品名称.出发城市.目的地城市.价格.出发日期.交通方式.旅游景点.酒店.行程安排等信息.用户输入出发城市.出发日期.旅游目的地等条件后,系统能按照一定的逻辑进行线路的展示和比价,方便用户做出决策. 解决方案 Java 用jsoup 通过标签获取. 解决方案二: 用python的scrapy爬虫框架来

爬-请问如何抓下去抓取如下链接中的数据?搞了几天了,没有头绪啊,坐等大神帮忙。。。。

问题描述 请问如何抓下去抓取如下链接中的数据?搞了几天了,没有头绪啊,坐等大神帮忙.... 各位大神好,我想抓取这个网站上http://xxfb.hydroinfo.gov.cn/ssIndex.html,大江大河的水文数据,,好像是用post方法才能返回表里的数据,但是小白实在是不会用,请各路大神帮忙看看,如何获取这个表中的数据,谢谢啦 解决方案 可以用浏览器控制台抓一下请求,post的各种参数需要你能够搞清,这样就可以构造对应的参数,一个个发送post获取返回数据,然后再解析结果. 解决方案

网络爬虫-用Java来抓取网页实例中HttpClient类的问题

问题描述 用Java来抓取网页实例中HttpClient类的问题 报这么一大堆错误我也是受不了了...... 主要的问题应该是HttpClient类这个东西,在网上查了这个类是httpclient-2.x.jar包的产物,我导入的是httpclient-4.2.2.jar和httpcore-4.2.2.jar包,而这两个新的工具包并不包含HttpClient类,查阅了Java API帮助文档后,自己并没有找到HttpClient类的替代类,而是一堆接口和抽象类,由于是刚开始写这个,所以有点懵.

请问各位牛人大侠,用离线浏览器抓取有网站限制多线程快速抓数据的网站该用那些软件

问题描述 本人工作需要,下在一个网站完整的镜象离线浏览,所以用离线浏览器teleportpro抓取一个网站,结果遇到了棘手问题,该抓取网站有限制多线程快速抓数据的设置,结果抓取了一堆请稍候......的页面,请问该用那些软件下,或者teleportpro遇到这种网站该如何设置?补充一点若我发错地方请牛人大侠跟贴告知一下这样的问题去那里问比较好,谢谢了.

phantomjs 抓取html页面中所有h3标签

问题描述 phantomjs 抓取html页面中所有h3标签 var page = require('webpage').create();phantom.outputEncoding='gbk';page.open('http://baidu.com/s?wd=javascript'function(status) { console.log(page.title); page.evaluate(function(){ var len=document.getElementsByTagName

asp 抓取alexa 网站世界排名代码

asp 抓取alexa 网站世界排名代码 function Alexa(AlexaURL)  on error resume next  dim getsms,getstr,url  dim star,endd  url="http://data.alexa.com/data?cli=10&dat=snba&url="&AlexaURL  getsms=getHTTPPage(url)  if getsms<>"" then