用WebRequest抓取PHP页面为什么乱码啊???

问题描述

http://bill.finance.sina.com.cn/bill/detail.php?stock_code=sh600000&bill_size=40000这个页面,用了什么编码都是乱码,真是郁闷啊

解决方案

解决方案二:
privatevoidbtnTest_Click(objectsender,EventArgse){HttpWebRequestreq=(HttpWebRequest)WebRequest.Create("http://bill.finance.sina.com.cn/bill/detail.php?stock_code=sh600000&bill_size=40000");req.Method="GET";HttpWebResponsersp=(HttpWebResponse)req.GetResponse();StreamReaderrdr=newStreamReader(rsp.GetResponseStream(),Encoding.GetEncoding("GB2312"));strings=rdr.ReadToEnd();MessageBox.Show(s.Substring(0,1024));}

取出来的结果是------------------------------------------------------<html><head><metahttp-equiv="Content-type"content="text/html;charset=gb2312"><metahttp-equiv="pragma"content="no-cache"><metahttp-equiv="refresh"content="180"><metaname="keywords"content="大单追踪"><metaname="description"content="大单追踪"><title>600000_大单明细_大单追踪_新浪财经</title><styletype="text/css">td,p,li,select,input,textarea{font-size:12px}AIMG{border:0}.img01{border:1pxsolid#999999}.f14{font-size:14px}.f12{font-size:12px}.l15{line-height:150%}.l13{line-height:130%}.lh19{line-height:19px;}A:link{color:#0015EA}A:hover{color:#ff0000;}A.sinatail:link,A.sinatail:visited{text-decoration:underline;color:#0000ff;font-size:12px}A.sinatail:active,A.sinatail:hover{text-decoration:underline;color:#ff0000;font-size:12px}A.title1:link,A.title1:visited,A.title1:active,A.title1:hover{FONT-WEIGHT:bold;FONT-SIZE:17px;COLOR:#000000;FONT-FAMILY:arial;TEXT-DECORATION:none;}A.title2:link,A.title2:visited{COLOR:#000000;TEXT-DECORATION:none;}A.title2:active,A.title2:hover{C---------------------------确定---------------------------
解决方案三:
不行啊,照抄你的代码出来的是輢麠]Wq嫦璇竔Vh{蒉颎K瓕,蓪&€Y栿`f鸵狠}諁璙wэ晞痧??a虬別Y朵噇K贫0z8苿?d?......还是乱码!!!
解决方案四:
publicstaticstringCatchData(stringurl){WebClient_client=newWebClient();_client.BaseAddress=url;_client.Headers.Add("Accept","image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/*");_client.Headers.Add("Accept-Language","zh-cn");_client.Headers.Add("UA-CPU","x86");_client.Headers.Add("Accept-Encoding","gzip,deflate");_client.Headers.Add("User-Agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.2;SV1;.NETCLR1.1.4322;.NETCLR2.0.50727)");System.IO.StreamobjStream=_client.OpenRead("/");System.IO.StreamReader_read=newSystem.IO.StreamReader(objStream,System.Text.Encoding.GetEncoding("GB2312"));return_read.ReadToEnd();}用WebRequest来实现的话是乱码用这个方法来实现的话出来的就是这结果,不是我想要的<html>n<head>n<title>股票行情_财经纵横_新浪网</title>n<metahttp-equiv="Content-type"content="text/html;charset=gb2312">n<scriptlanguage="javascript">n<!--nfunctiononGoDetailClick()n{ntvarcountry=document.getElementById("bill_country_id").value;ntvarstock_code_value=document.getElementById("stock_code_id").value;ntif(stock_code_value.length!=6)nt{nttalert("请输入正确的6位股票代码,如600000");nt}ntelsent{nttvarurl="http://bill.finance.sina.com.cn/bill/detail.php?stock_code="+country+stock_code_value;nttwindow.open(url,"","");nt}n}nnfunctiononGoTradeItemClick()n{ntvarcountry=document.getElementById("bill_country_id").value;ntvarstock_code_value=document.getElementById("stock_code_id").value;ntif(stock_code_value.length!=6)nt{nttalert("请输入正确的6位股票代码,如600000");nt}ntelsent{nttvarurl="http://bill.finance.sina.com.cn/bill/trade_item.php?stock_code="+country+stock_code_value;nttwindow.open(url,"","");nt}n}nnfunctiononGoPriceStatistClick()n{ntvarcountry=document.getElementById("bill_country_id").value;ntvarstock_code_value=document.getElementById("stock_code_id").value;ntif(stock_code_value.length!=6)nt{nttalert("请输入正确的6位股票代码,如600000");nt}ntelsent{nttvarurl="http://bill.finance.sina.com.cn/bill/price_statist.php?stock_code="+country+stock_code_value;nttwindow.open(url,"","");nt}n}nnfunctiononGoHoldStatistClick()n{ntvarcountry=document.getElementById("bill_country_id").value;ntvarstock_code_value=document.getElementById("stock_code_id").value;ntif(stock_code_value.length!=6)nt{nttalert("请输入正确的6位股票代码,如600000");nt}ntelsent{nttvarurl="http://bill.finance.sina.com.cn/bill/hold_statist.php?stock_code="+country+stock_code_value;nttwindow.open(url,"","");nt}n}n//-->n</script>n</head>n<body>n<center>nn<br/>nn<h1>n<ahref='http://bill.finance.sina.com.cn/bill/all.php'target='_blank'>实时大单</a><ahref='http://bill.finance.sina.com.cn/bill/analyse.php'target='_blank'>大单分析</a><ahref='http://bill.finance.sina.com.cn/bill/strange_bill.php'target='_blank'>异动大单</a><ahref='http://bill.finance.sina.com.cn/bill/history_all.php'target='_blank'>历史大单</a>n</h1>nn交易所:<selectid='bill_country_id'>n<optionvalue='sh'>上海</option>n<optionvalue='sz'selected>深圳</option>n</select> 股票代码:<inputtype='text'id='stock_code_id'size='6'value='000001'onclick='this.value=""'>n<inputtype='button'value='大单明细'onclick='onGoDetailClick()'>n<inputtype='button'value='成交明细'onclick='onGoTradeItemClick()'>n<inputtype='button'value='分价表'onclick='onGoPriceStatistClick()'>n<inputtype='button'value='持仓分析'onclick='onGoHoldStatistClick()'>nn<!--suggestbegin-->n<linkrel="stylesheet"href="http://finance.sina.com.cn/iframe/sg.css">n<scripttype="text/javascript">nfunctioniask(fn){ntif(fn.q.value==""||fn.q.value=="代码/名称/拼音")nt{nttfn.q.value="代码/名称/拼音";nttfn.q.focus();nttreturnfalse;nt}ntvarlocadr=fn.locadr.value;ntif(locadr!="")nt{nttwindow.open(locadr);nt}ntelsent{nttfn.symbol.value=fn.q.value;nttfn.submit();nt}ntreturnfalse;n}nfunctiong(URL){window.location.href=URL;}n</script>n<scriptlanguage="text/javascript">nfunctionString.prototype.xor(str)n{nvarresult="",l=Math.min(str.length,this.length);nfor(vari=0;i<l;i++)result+=String.fromCharCode(this.charCodeAt(i)^str.charCodeAt(i));nreturnresult;n}nvarstr1="K6/1&=1Z^AOCYS@77;$57]";nvarstr2="welcomezouyccrtaveagoodtimecc";n</script>n<scriptlanguage=javascript>nvarrecnum;nvarreclist=newArray;n</script>n<formmethod="post"id="f"name=iask_fonSubmit="returniask(this)"action="http://biz.finance.sina.com.cn/suggest/lookup.php"target=_blank>nt<inputtype="text"id="k"name="q"value="代码/名称/拼音"size="35"maxlength="50"autocomplete="off"onClick="javascript:if(this.value=='代码/名称/拼音')this.value='';">nt<inputtype="submit"value="查询"/>nt<inputname="s"type="hidden"value="1">nt<inputname="portnum"id="portnum"type="hidden"value="8081">nt<inputtype="hidden"name="symbol"id="symbol">nt<inputtype="hidden"name="market"id="market">nt<inputtype="hidden"name="locadr"id="locadr">n<scriptsrc="http://finance.sina.com.cn/iframe/za.js"></script>n<scriptlanguage=javascriptid="recscript"></script>n<scriptlanguage=javascript>neverytenms();n</script>n</form>n<!--suggestend-->nn</center>n</body>n</html>nn
解决方案五:
没人知道吗?有的时候乱码,有的时候又不乱。。难道我人品有时有问题,有时又没问题吗?!
解决方案六:
哈哈,一定是的
解决方案七:
哦,差点忘记了……你注意检查一下返回的HTTP头,看ContentType是不是gzip压缩的如果是压缩的,你需要解压
解决方案八:
给你一段代码……恩,只是片段,无法运行的privatevoid_NavigateTo(objectvURL){_IsBusy=true;_URL=(string)vURL;HttpWebRequestReq=(HttpWebRequest)WebRequest.Create(_URL);Req.AllowAutoRedirect=true;Req.KeepAlive=true;Req.Method="GET";Req.Accept="*";Req.Referer=_Referer;Req.UserAgent="Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+eglic.com)";Req.Headers[HttpRequestHeader.Cookie]=Cookie;HttpWebResponseRsp;try{Rsp=(HttpWebResponse)Req.GetResponse();}catch(Exceptione){_IsBusy=false;if(null!=OnError)OnError(this,4,e.Message);return;}_Headers=null;_Headers=Rsp.Headers.ToByteArray();//设置新的CookieCookie=Rsp.Headers[HttpResponseHeader.SetCookie];if(HttpStatusCode.NotFound==Rsp.StatusCode){_IsBusy=false;if(null!=OnError)OnError(this,2,"未找到网页");return;}elseif(HttpStatusCode.InternalServerError==Rsp.StatusCode){_IsBusy=false;if(null!=OnError)OnError(this,3,"服务器内部错误");return;}if(Rsp.Headers[HttpResponseHeader.ContentEncoding]=="gzip"){GZipStreamstmz=newGZipStream(Rsp.GetResponseStream(),CompressionMode.Decompress);MemoryStreamstmm=newMemoryStream();byte[]_zbuff=newbyte[2048];intread=-1;read=stmz.Read(_zbuff,0,2048);while(read>0){stmm.Write(_zbuff,0,read);read=stmz.Read(_zbuff,0,2048);}stmz.Close();stmz.Dispose();_HTML=Encoding.GetEncoding(_Lang).GetString(stmm.ToArray());stmm.Close();stmm.Dispose();}else{//设置编码StreamReaderstm=newStreamReader(Rsp.GetResponseStream(),Encoding.GetEncoding(_Lang));_HTML=stm.ReadToEnd();stm.Dispose();}ParseHTML();_Referer=_URL;_IsBusy=false;if(null!=OnDocumentReady)OnDocumentReady(this,false);}

时间: 2024-10-31 14:19:46

用WebRequest抓取PHP页面为什么乱码啊???的相关文章

利用curl抓取远程页面内容的示例代码

利用curl抓取远程页面内容的一个小示例,需要的朋友可以过来参考下   最基本的操作如下 复制代码 代码如下: $curlPost = 'a=1&b=2';//模拟POST数据 $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:0.0.0.0', 'CLIENT-IP:0.0.0.0'));  //构造IP curl_setopt($ch, CURLOPT_REFERER, "ht

php5-怎么用php抓取一个页面的文章标题和标题对应的内容导入数据库,T_T

问题描述 怎么用php抓取一个页面的文章标题和标题对应的内容导入数据库,T_T 解决方案 http://www.jb51.net/article/48923.htm 把数据先抓回来,然后筛选你想要的,存入数据库就可以了. 解决方案二: 用xml工具解析,或正则

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

利用curl抓取远程页面内容的示例代码_php技巧

最基本的操作如下 复制代码 代码如下: $curlPost = 'a=1&b=2';//模拟POST数据$ch = curl_init();curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:0.0.0.0', 'CLIENT-IP:0.0.0.0'));  //构造IPcurl_setopt($ch, CURLOPT_REFERER, "http://www.jb51.net/");   //构造来路 cur

如何用java抓取ajax页面的内容?

问题描述 如何用java抓取ajax页面的内容?例如这个页面: http://app.abchina.com/branch/ 中的营业结构查询思路是什么,希望大家给出解答,谢谢! 问题补充:wangqj 写道 解决方案 用htmlparser就可以了,你不用管ajax,和正常页面一样抓就行.实际上你只要知道你要抓取的页面的网址就可以了

C#抓取AJAX页面的内容

原文 C#抓取AJAX页面的内容 现在的网页有相当一部分是采用了AJAX技术,所谓的AJAX技术简单一点讲就是事件驱动吧(当然这种说法可能很不全面),在你提交了URL后,服务器发给你的并不是所有是页面内容,而有一大部分是JS脚本,即用<JAVASCRIPT标签表示的,这其中有些是链接了外部的JS文件,有些是内置的JS脚本,这些脚本是在客户端加载了服务器发回来的源码后才执行的,所以不管是采用C#中的WebClient还是HttpRequest都得不到正确的结果,因为这些脚本是在服务器发送完毕后才执

Nodejs抓取html页面内容(推荐)_node.js

废话不多说,直接给大家贴node.js抓取html页面内容的核心代码了. 具体代码如下所示: var http = require("http"); var iconv = require('iconv-lite'); var option = { hostname: "stockdata.stock.hexun.com", path: "/gszl/s601398.shtml" }; var req = http.request(option,

#.NET分别以GET和POST方式抓取远程页面

  代码 引入命名空间using System.IO;using System.Net;using System.Text;using System.Text.RegularExpressions; //以GET方式抓取远程页面内容    public string Get_Http(string tUrl)    {        string strResult;        try        {            HttpWebRequest hwr = (HttpWebRequ

读“百度抓取和页面收录分析”看百度的价值趋势

自从百度发布了站长平台,越多越多的人涌入了这个平台获取百度最新的消息和官方报道,自然百度发布的声明中一般都是具有一定的权威性的,那么这里呢,笔者花了一些时候,重读了一下百度的"百度认为什么样的网站更有抓取和收录价值",里面介绍了很多百度的内容规则,那么这里呢,就写一下自己读完这篇小文的感想吧,希望可以给朋友带来不一样的信息突破点. 第一点:百度希望收录高质量的网站 的确在文章中指名道姓的说,我百度希望收录那些对于用户很有帮助的文章,而且最好是原创的,而且还能满足用户的一部分需求,这些内