当前位置:编程学习 > C#/ASP.NET >>

System.Net.HttpWebRequest抓取aspx页面,为什么每次抓取的Html内容都一样?

aspx页中的内容由session条件控制,循环改变每个Session值,来改变aspx页中的内容,可是不知道为什么若个Html的文件内容都一样? --------------------编程问答-------------------- 应该是你用这个模拟访问的方法的请求头不服胡对方的请求格式吧,你要模拟一下浏览器的请求 --------------------编程问答-------------------- 模拟一下浏览器?麻烦能说的详细些吗? --------------------编程问答-------------------- 这就好像你每次都用一个全新的机器去访问网站一样,你的请求没有维系cookie,从而也就没有维系SessionID——每一次访问都创建一个新的会话。 --------------------编程问答-------------------- http://www.google.cn/search?q=httpwebrequest+cookiecontainer&rls=com.microsoft:zh-cn:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7大体上可以参考这些:http://www.google.cn/search?q=httpwebrequest+cookiecontainer&rls=com.microsoft:zh-cn:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7 --------------------编程问答-------------------- http://www.google.cn/search?q=httpwebrequest+cookiecontainer&rls=com.microsoft:zh-cn:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7
这个例子有些繁琐,每次改变Cookie的值,都要抓取页面两次 --------------------编程问答-------------------- 这样程序的效率好像有点低了吧 --------------------编程问答-------------------- 用CookieContainer来保存第一次抓取时候的Cookie,第二次...第N次的时候把这个Cookie附带动就行了. --------------------编程问答-------------------- httwebrequest模拟用户登录
延迟抓取页面数据 --------------------编程问答-------------------- 你是怎么循环改变每个Session的?

每次发起一个请求,服务器认为是一个新的请求,每次的Session确实都不一样,但是这也是针对第一次访问,后面要想让服务器知道你是同一个客户端,则需要保持Cookie(这个要看服务器是怎么维持Session的)。 --------------------编程问答-------------------- Session的值我是通过循环来设定的,比如从1到5,Session的我分别设定为1,2,3,4,5,在设定Session的值时,Session值的改变,会影响到aspx页的内容,我就是想通过Session值的不同,来抓取不同的aspx内容。
所以在改在Session值时,我同时去抓取aspx内容,结果抓取下的内容每次都是第一个Session值的内容。


--------------------编程问答-------------------- 我之所以说那个抓取两次的效率低,是因为我要不停的改变session的值。 --------------------编程问答--------------------
引用 10 楼 qhq5152096 的回复:
Session的值我是通过循环来设定的,比如从1到5,Session的我分别设定为1,2,3,4,5,在设定Session的值时,Session值的改变,会影响到aspx页的内容,我就是想通过Session值的不同,来抓取不同的aspx内容。
所以在改在Session值时,我同时去抓取aspx内容,结果抓取下的内容每次都是第一个Session值的内容。


用CookieContainer数组来分别保存不就行了吗?提交的时候判断是提交的哪一个cookie --------------------编程问答-------------------- 用CookieContainer数组来分别保存不就行了吗?提交的时候判断是提交的哪一个cookie
[/Quote]

我不会写。。。。 --------------------编程问答--------------------

CookieContainer[] arrCC;
Thread[] arrThread;
arrCC = new CookieContainer[intSelectedCount];
arrThread = new Thread[intSelectedCount];

                for (int j = 0; j < intSelectedCount; j++)
                {
                    Application.DoEvents();
                    
                    arrCC[j] = sub.LoginSite("网址", "参数");
                    if (arrCC[j]!=null)
                    {
                        //MessageBox.Show(arrCC[j].ToString());
                        arrclsThread[j] = new clsThread(arrRowIndex[j], arrProvinceID[j], intAddMinutes, intSelectedCount, j, arrCC[j]);
                        arrThread[j] = new Thread(arrclsThread[j].doCatch);
                        arrThread[j].Start();
                    }
                }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,