C#获取网页源代码时候返回404错误,但是浏览器缺可以正常访问该网址,怎么办? 10

staticstringGetHtml(stringurl){stringhtml=string.Empty;HttpWebRequestrequest=(HttpWeb... static string GetHtml(string url) { string html = string.Empty; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader sr = new StreamReader(response.GetResponseStream())) { html = sr.ReadToEnd(); } return html; }
我是用以上代码获取一个网址的,单程序报404错。遨游,IE都能正常访问。会不会是对方代码有防抓取机制?怎么改代码?
展开
 我来答
梅2江
推荐于2018-03-28 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:153
采纳率:100%
帮助的人:83.9万
展开全部
试一试设置请求的类型,有一项设置是什么content-type的,大体意思貌似你请求的是网页的数据还是文件数据,。不行的话有可能是人家网页设置了只允许某些浏览器才能正常加载他/她的网页喇。
浩小宇
2014-01-02 · TA获得超过121个赞
知道小有建树答主
回答量:264
采纳率:0%
帮助的人:94.4万
展开全部
把cookie 带上试试 还有UserAgent
追问
给几行代码,行不?
追答

你可以在谷歌浏览器的网络面板里看到,他虽然能显示页面,但是返回的状态是404的


try

            {

                WebClient client = new WebClient();

                client.DownloadData("http://www.babyneo.de/Babymilch--Aptamil-Nestle-Hipp--39/Holle-Bio-Produkte/Holle-Bio-4-Milchnahrung-600g.html");

            }

            catch (WebException ex)

            {

                HttpWebResponse resp = (HttpWebResponse)ex.Response;

                Stream responseStream = resp.GetResponseStream();                

                StreamReader sr = new StreamReader(responseStream, Encoding.UTF8);

                string sReturn = sr.ReadToEnd().Trim();

                resp.Close();

                sr.Close();

                Console.WriteLine(sReturn);

            }



这样就可以获取到html,记得给分

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-02
展开全部
不给网址怎么测试,不过可能原因大体有 useragent判断或cookie判断 可以在请求头上设置一下试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式