结合IE9的开发者工具取得动态网页的html代码

最近在做一个项目,要得到网页中的一些数据,静态的页面比较容易做,只要解析网站的URL地址就可以得到HTML代码,但是有些网页是动态生成的,比如翻页过程中,地址栏中的URL地址都不会发生变化,所以得到这种网页的内容就相对麻烦些。下面我以https://honors.libraries.psu.edu/browse/author/all/这个网站的翻页动作为例子,说明一下动态网页HTML代码的获取过程。

1、用IE9打开这个网站:https://honors.libraries.psu.edu/browse/author/all/

2、按下F12调出开发者工具

点开发者工具中的“网络”-->"开始捕获",然后点击网页上的“next page”链接

3、得到整个请求的过程

点击“转到详细视图“

4、将参数与c#的HtmlWebRequest对象绑定

///<summary>

        ///采用https协议访问网络

        ///</summary>

        ///<param name="URL">url地址</param>

        ///<param name="strPostdata">发送的数据</param>

        ///<returns></returns>

        public string OpenReadWithHttps(string URL, string strPostdata, Encoding encoding)
        {
            CookieContainer cc = new CookieContainer();

            cc.Add(new Cookie("csrftoken", "04696113ff3ee3e8220dd9044921e100", "/browse/author/all/", "honors.libraries.psu.edu"));
            cc.Add(new Cookie("__utma", "148028590.1404245236.1416720957.1416734716.1416748914.3", "/browse/author/all/", "honors.libraries.psu.edu"));
            cc.Add(new Cookie("__utmz", "148028590.1416720957.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)", "/browse/author/all/", "honors.libraries.psu.edu"));
            cc.Add(new Cookie("__utmb", "148028590.2.10.1416748914", "/browse/author/all/", "honors.libraries.psu.edu"));
            cc.Add(new Cookie("__utmc", "148028590", "/browse/author/all/", "honors.libraries.psu.edu"));

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);

            request.CookieContainer = cc;            

            request.Method = "post";

            request.Accept = "text/html, application/xhtml+xml, */*";

            request.ContentType = "application/x-www-form-urlencoded";

            request.Referer="https://honors.libraries.psu.edu/browse/author/all/";

            request.KeepAlive = true;

            request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)";

            request.Host = "honors.libraries.psu.edu";

            request.Headers.Add(HttpRequestHeader.AcceptLanguage, "en-US");

            request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");

            request.Headers.Add(HttpRequestHeader.CacheControl, "no-cache");

            byte[] buffer = encoding.GetBytes(strPostdata);

            request.ContentLength = buffer.Length;

            Stream writer = request.GetRequestStream(); //获得请求流    

            writer.Write(buffer, 0, buffer.Length); //将请求参数写入流   

            writer.Close(); //关闭请求流

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
            {

                return reader.ReadToEnd();
            }

        }

参数说明:

URL:请求的地址,strPostdata:POST发送的数据,encoding:页面编码

5、调用

private void button2_Click(object sender, EventArgs e)
        {
            string url = "https://honors.libraries.psu.edu/browse/author/all/";
            string strPostData = "csrfmiddlewaretoken=04696113ff3ee3e8220dd9044921e100&browse_start=all&browse_type=author&page=9&display=50&num_display_items=50";

            textBox1.Text = OpenReadWithHttps(url, strPostData, Encoding.UTF8);
        }

总结流程:用IE9的开发者工具捕获页面请求过程,得到请求的各参数,然后将各参数绑定到HtmlWebRequest对象进行请求!

时间: 2024-11-11 09:39:45

结合IE9的开发者工具取得动态网页的html代码的相关文章

Chrome 35个开发者工具的小技巧

来源:w3cplus - 南北(@ping4god) 网址:http://www.w3cplus.com/tools/dev-tips.html 谷歌浏览器如今是Web开发者们所使用的最流行的网页浏览器.伴随每六个星期一次的发布周期和不断扩大的强大的开发功能,Chrome变成了一个必须的工具.大多数可能熟悉关于chorme的许多特点,例如使用console和debugger在线编辑CSS.在这篇文章中,我们将分享一些很酷的技巧,让你能够更好的改进工作流程. 通过 console 面板修改页面元素

Chrome 35 个开发者工具的小技巧

谷歌浏览器如今是Web开发者们所使用的最流行的网页浏览器.伴随每六个星期一次的发布周期和不断扩大的强大的开发功能,Chrome变成了一个必须的工具.大多数可能熟悉关于chorme的许多特点,例如使用console和debugger在线编辑CSS.在这篇文章中,我们将分享一些很酷的技巧,让你能够更好的改进工作流程. 通过 console 面板修改页面元素及元素内容: 获取元素节点 右键选择 Edit as HTML 或者 Edit Text 修改后的内容会实时反映在页面和 Elements 面板上

Chrome64基础 开发者工具 查看a标签处于:hover时的css代码

礼悟:    公恒学思合行悟,尊师重道存感恩.叶见寻根三返一,江河湖海同一体.          虚怀若谷良心主,愿行无悔给最苦.读书锻炼养身心,诚劝且行且珍惜.             browser:Chrome                            os:win7 困境 给最苦 想通过 开发者工具 来调节网页中,鼠标放在超链接上时,超链接的颜色.可问题是,鼠标放上,对应的css代码出现,刚把鼠标移开,css代码就消失了... 解决办法 调出 开发者工具 右键... 完成 原

巧用网页开发者工具F12 审查、修改元素、去除广告、屏蔽遮罩

每当打开一个网页的时候,是否为页面有很多广告而烦恼:是否为要操作页面(例如观看超清视频),请先注册登录等等事情而麻烦:是否对网页加锁的视频懊恼?今天为大家分享一个技巧,本文只提供思路,更多好玩有趣的东西有待朋友们开发! 不过也要提醒开发者在做遮罩层的时候注意这些问题! 好了切入正题,先说某某学院视频,如图,视频本身是加锁的,点击会弹出登录框! 这时候要做的就是 F12打开开发者工具,找到弹出层的元素然后将其display:none:这样比较麻烦是吧,还有更简单的一种方法,笔者用的是UC流浪器,右

利用google浏览器开发者工具调试网页(详)

前端程序员或者在校大学生正在开发网页,如果想要测试或者通过测试优化网页结构,该怎么办呢?这就需要用到一款工具,chrome浏览器的开发者工具?本文写给尚不熟悉这个开发者工具的同学们或者同行们,话不多说,先看文章 怎样打开Chrome的开发者工具? 你可以直接在页面上点击右键,然后选择审查元素: 或者在Chrome的工具中找到: 或者,你直接记住这个快捷方式: Ctrl+Shift+I (或者Ctrl+Shift+J直接打开控制台),或者直接按F12. 打开的开发者工具就长下面的样子: 不过我一般

神器——Chrome开发者工具(一)

http://segmentfault.com/a/1190000000683599 原文地址 这里我假设你用的是Chrome浏览器,如果恰好你做web开发,或者是比较好奇网页中的一些渲染效果并且喜欢折腾,那么你一定知道Chrome的开发者工具了.其实其他浏览器也有类似工具,比如Firefox下的firebug.本文将会详细讲述如何使用Chrome开发者工具,希望里面有些让你感到惊艳的东西!即使你不用Chrome,那么文中的某些内容也会相当有用. 首先啰嗦一下如何打开开发者工具吧.可以直接在页面

http://segmentfault.com/a/1190000000683599神器——Chrome开发者工具(一)

这里我假设你用的是Chrome浏览器,如果恰好你做web开发,或者是比较好奇网页中的一些渲染效果并且喜欢折腾,那么你一定知道Chrome的开发者工具了.其实其他浏览器也有类似工具,比如Firefox下的firebug.本文将会详细讲述如何使用Chrome开发者工具,希望里面有些让你感到惊艳的东西!即使你不用Chrome,那么文中的某些内容也会相当有用. 首先啰嗦一下如何打开开发者工具吧.可以直接在页面上点击右键,然后选择审查元素:或者是打开Tools--Developer Tools:或者是用快

你不再需要动态网页——编辑-发布-开发分离

?尽管没有特别的动力去构建一个全新的CMS,但是我还是愿意去撰文一篇来书写如何去做这样的事--编辑-发布-开发分离模式是如何工作的.微服务是我们对于复杂应用的一种趋势,编辑-发布-开发分离模式则是另外一种趋势.在上篇文章<Repractise架构篇一: CMS的重构与演进>中,我们说到编辑-发布-开发分离模式. 系统架构 如先前提到的,Carrot使用了下面的方案来搭建他们的静态内容的CMS. 在这个方案里内容是用Contentful来发布他们的内容.而在我司ThoughtWorks的官网里则

动态网页数据的采集方案

我在上一篇文章中介绍了使用ScrapySharp快速从网页中采集数据,这种方式是通过直接发送的Http请求来获取的原始页面信息,对于静态网页非常有效,但还有许多网站中的页面内容并非全部存放在原始的页面中,很多内容是通过javascript来动态生成的,这些数据用前面的方式就抓取不到了.本文这里就简单的介绍一下动态网页的采集方案. 对于这样的网页数据的采集,往往是利用一个浏览器引擎来实现整个页面的加载,输出加载完后的完整页面,然后就可以利用ScrapySharp等工具解析了.常用有如下几种方式: