苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 24698|回复: 10

[其他] 如何用webbrowser获取所有get请求

[复制链接]
发表于 2013-8-20 09:25:40 | 显示全部楼层 |阅读模式
访问www.baidu.com,用firebug可以看到有3个请求(我要做的当然不是baidu,里面肯定有很多的请求),怎么样用webBrowser,可以获取这3个请求?
麻烦写详细点,本人才接触c#



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-8-20 09:46:31 | 显示全部楼层
DocumentCompleted 在这个事件里获取所有的URl就行了

[code=csharp]private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            //e.Url 这个就是你要的URl,所有页面都有经过这里
         
        }[/code]
 楼主| 发表于 2013-8-20 09:58:54 | 显示全部楼层
本帖最后由 lanxinwoaini 于 2013-8-20 10:00 编辑
站长苏飞 发表于 2013-8-20 09:46
DocumentCompleted 在这个事件里获取所有的URl就行了

我对http://www.quanjing.com/打断点,只能获取http://www.quanjing.com这一个,它下面的一个都无法获取到啊,直接就结束了。
  1. private void webBrowser1_Completed(object sender, WebBrowserDocumentCompletedEventArgs e)
  2.         {
  3.             //if (webBrowser1.ReadyState != WebBrowserReadyState.Complete) return;
  4.             //MessageBox.Show("完成加载");

  5.             string ss = e.Url.ToString();
  6.         }
复制代码
 楼主| 发表于 2013-8-20 10:06:32 | 显示全部楼层
站长苏飞 发表于 2013-8-20 09:46
DocumentCompleted 在这个事件里获取所有的URl就行了

你是指object url = e.url 里面的内容?能不能具体说一下是哪个属性包含了这些请求?

发表于 2013-8-20 10:13:07 | 显示全部楼层
webBrowser1_Completed这个事件是每次加载完页面执行的,
也就是说有几个请求就会加载几次,加载 的那个请求就是那个请求的地址
e.url 是个URl地址就是你的请求地址
你要取三次,如果有更多需要取更多,
定义一个List进行添加就行了,当页面都加载完了,调取一下List的内容,

private void webBrowser1_Completed(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
      
            TextBox1.Text += e.Url.ToString();
        }
 楼主| 发表于 2013-8-20 10:26:04 | 显示全部楼层
yangying 发表于 2013-8-20 10:13
webBrowser1_Completed这个事件是每次加载完页面执行的,
也就是说有几个请求就会加载几次,加载 的那个请 ...

我按你说的做了,可是只有www.baidu.com
  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             // this.textAddr.Text = "http://ac.pagechoice.net/dap/var/templates_compiled/preview.html";
  4.             CBUrl.Items.Add("http://gb.cri.cn/42071/2013/08/06/6651s4208724.htm");
  5.             CBUrl.Items.Add("http://gb.cri.cn/gg/news2013/news_ybl2013_r_ba01.htm");
  6.             CBUrl.Items.Add("http://www.quanjing.com/");
  7.             CBUrl.Items.Add("http://www.baidu.com");
  8.             webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_Completed);
  9.         }


  10.         private void button1_Click(object sender, EventArgs e)
  11.         {
  12.             string strUrl2 = CBUrl.SelectedItem.ToString().Trim();
  13.             webBrowser1.Navigate(strUrl2);
  14.         }

  15.         private void webBrowser1_Completed(object sender, WebBrowserDocumentCompletedEventArgs e)
  16.         {
  17.             textBox1.Text += e.Url.ToString();
  18.         }
复制代码
无标题.png
 楼主| 发表于 2013-8-20 12:05:38 | 显示全部楼层
站长苏飞 发表于 2013-8-20 09:46
DocumentCompleted 在这个事件里获取所有的URl就行了

如果不用webbrowser有没有什么好的办法可以获取
发表于 2013-11-25 12:06:47 | 显示全部楼层
顶 我也想知道!!{:soso_e101:}
发表于 2015-7-11 20:38:04 | 显示全部楼层
你这问题解决了吗?苏飞说的办法, 只能获取到当前浏览器的地址栏里的地址,  F12调试里看到的get请求, 是获取不到的.  
 楼主| 发表于 2016-1-28 16:00:52 | 显示全部楼层
程序中添加finder2抓包
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 04:36

© 2014-2021

快速回复 返回顶部 返回列表