网站需验证资源的下载 一个音乐网站,我看了下mp3文件都是明码的路径地址的,可以直接下载 ,但是需要进入页面获取文件地址需要通过页面的验证,不然页面只会出来“您还未购买服务”的js显示文本代码。我怎么在有服务帐号的情况下,批量获得这个网站资源的路径地址n呢? 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用HttpWebRequest抓,不過要先post登錄的包過去,注意登錄與抓取地址要使用相同的CookieContainer 參考http://topic.csdn.net/t/20060318/11/4622842.html 你可以在网上找一下批量工具,比如flashget或其他一些信息抓取的工具 flashget 应该不能带验证信息过去的把,这些明码的文件虽然看的道,但是flashget还是搜索不出来的 已经解决,忘了贴代码分享,网上一段代码修改后使用,调用登陆页面获取cookiecontainer,然后读取所需页面的脚本://获取验证后的html private string getpic(string url,string urlres) { string indata=""; string outdata=""; CookieContainer myCookieContainer=new CookieContainer(); //新建一个CookieContainer来存放Cookie集合 HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url); //新建一个HttpWebRequest myHttpWebRequest.ContentType="application/x-www-form-urlencoded"; myHttpWebRequest.ContentLength=indata.Length; myHttpWebRequest.Method="POST"; myHttpWebRequest.CookieContainer=myCookieContainer; //设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer Stream myRequestStream=myHttpWebRequest.GetRequestStream(); StreamWriter myStreamWriter=new StreamWriter(myRequestStream,Encoding.GetEncoding("gb2312")); myStreamWriter.Write(indata); //把数据写入HttpWebRequest的Request流 myStreamWriter.Close(); myRequestStream.Close(); //关闭打开对象 HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); //新建一个HttpWebResponse myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri); //获取一个包含url的Cookie集合的CookieCollection Stream myResponseStream=myHttpWebResponse.GetResponseStream(); StreamReader myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312")); outdata=myStreamReader.ReadToEnd(); //把数据从HttpWebResponse的Response流中读出 myStreamReader.Close(); myResponseStream.Close(); //textBox1.Text=outdata; //显示"登录" //string urlres="http://www.laabaa.com/lishigushi/sx5000/sj/1805.html"; //拿到了Cookie,再进行请求就能直接读取到登录后的内容了 myHttpWebRequest=(HttpWebRequest)WebRequest.Create(urlres); myHttpWebRequest.CookieContainer=myCookieContainer;//* //刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证 myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri); myResponseStream=myHttpWebResponse.GetResponseStream(); myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312")); outdata=myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); return outdata; } GridView点击行变色 在activeX中WebClient的问题,盼高手解决~ 谢谢。气球提示的问题 C#修改记录 databinding.remove问题 DataGrid批量更新(难呀) 请教大侠,未能加载pt.global 半角/全角转换 字符串前面加@是什么意思? 关于ASP.NET复制和粘贴的问题。 新手请教,关于变量定义 SqlCommandBuilder命令构造器
private string getpic(string url,string urlres)
{
string indata="";
string outdata="";
CookieContainer myCookieContainer=new CookieContainer();
//新建一个CookieContainer来存放Cookie集合
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url);
//新建一个HttpWebRequest
myHttpWebRequest.ContentType="application/x-www-form-urlencoded";
myHttpWebRequest.ContentLength=indata.Length;
myHttpWebRequest.Method="POST";
myHttpWebRequest.CookieContainer=myCookieContainer;
//设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer
Stream myRequestStream=myHttpWebRequest.GetRequestStream();
StreamWriter myStreamWriter=new StreamWriter(myRequestStream,Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(indata);
//把数据写入HttpWebRequest的Request流
myStreamWriter.Close();
myRequestStream.Close();
//关闭打开对象
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
//新建一个HttpWebResponse
myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
//获取一个包含url的Cookie集合的CookieCollection
Stream myResponseStream=myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312"));
outdata=myStreamReader.ReadToEnd();
//把数据从HttpWebResponse的Response流中读出
myStreamReader.Close();
myResponseStream.Close();
//textBox1.Text=outdata;
//显示"登录"
//string urlres="http://www.laabaa.com/lishigushi/sx5000/sj/1805.html";
//拿到了Cookie,再进行请求就能直接读取到登录后的内容了
myHttpWebRequest=(HttpWebRequest)WebRequest.Create(urlres);
myHttpWebRequest.CookieContainer=myCookieContainer;//*
//刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证
myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
myResponseStream=myHttpWebResponse.GetResponseStream();
myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312"));
outdata=myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return outdata;
}