none
如何定时刷新我的IE并保存源文件txt RRS feed

  • 问题

  • 我的IE打开了一个网页
    我没隔一段时间按F5刷新页面,并点击 查看 源文件,然后保存源文件。

    现在我希望用代码来代替我手工做这些事情。

    可以怎么办呢?谢谢!
    2009年12月8日 8:49

答案

  • 谢谢版主。
    但是我的网页是需要用户名和密码登陆的。
    好吧,比如开心网。
    比如说,我使用IE登陆开心网后,查看超级大亨的价格表。这时候,价格表是有一个网址A的。
    但是我如果使用webBrower直接进入这个网址A,它会自动跳到登陆界面去,而不会得到我需要的价格表了。

    你好你可以按照X.X.Y版主说的

    如果需要用户名和密码登录

    你可以先请求一次登陆页面 组装要发送的用户名和密码  设置WebRequest的CookieContainer 就可以的
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年12月9日 1:39
    版主
  • 这样,推荐一个网站你看看,里面还有一个正则练习器。


    知识改变命运,奋斗成就人生!
    • 已标记为答案 阿朵 2009年12月9日 8:44
    2009年12月9日 7:09
    版主
  • 通过WebBrowser.Document  操作文档对象 很容易就能将数据进行处理了

    刻苦的创造自己的神化
    • 已标记为答案 阿朵 2009年12月11日 8:07
    2009年12月9日 9:03

全部回复

  • 你好!

    换种思路就很好解决了。使用 Winform 的 WebBrower 控件,来显示你的页面,使用一个 Timer 来定定时刷新它并将源代码保存起来。

    知识改变命运,奋斗成就人生!
    2009年12月8日 9:26
    版主
  • 谢谢版主。
    但是我的网页是需要用户名和密码登陆的。
    好吧,比如开心网。
    比如说,我使用IE登陆开心网后,查看超级大亨的价格表。这时候,价格表是有一个网址A的。
    但是我如果使用webBrower直接进入这个网址A,它会自动跳到登陆界面去,而不会得到我需要的价格表了。
    2009年12月8日 9:44
  • 嗷,对了,如果我webBrower上了我希望的网页,怎么得到网页上的文字信息呢?
    2009年12月8日 9:52
  • 你好!

    你先参考下下面的代码。

    private void button1_Click(object sender, EventArgs e)
    {
        WebBrowser webBrowser = new WebBrowser();
        webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
        webBrowser.Navigate("http://www.mzwu.com/");
    }
    
    private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser webBrowser = (WebBrowser)sender;
        //WebBrowserReadyState.Interactive 和 WebBrowserReadyState.Complete 时都会触发DocumentCompleted
        if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
        {
            //webBrowser1.DocumentText 获取的内容中文会乱码
            //获取文档编码
            Encoding encoding = Encoding.GetEncoding(webBrowser.Document.Encoding);
            StreamReader stream = new StreamReader(webBrowser.DocumentStream, encoding);
            File.WriteAllText(@"C:\mzwu.txt", stream.ReadToEnd(), Encoding.Unicode);
            MessageBox.Show(DateTime.Now.ToString() + ": 页面内容获取完成! ");
        }
    }


    知识改变命运,奋斗成就人生!
    2009年12月8日 10:02
    版主
  • 另外WebRequest、WebClient 都可以获取源代码。网上的列子也多你可以查查。
    知识改变命运,奋斗成就人生!
    2009年12月9日 0:40
    版主
  • 谢谢版主。
    但是我的网页是需要用户名和密码登陆的。
    好吧,比如开心网。
    比如说,我使用IE登陆开心网后,查看超级大亨的价格表。这时候,价格表是有一个网址A的。
    但是我如果使用webBrower直接进入这个网址A,它会自动跳到登陆界面去,而不会得到我需要的价格表了。

    你好你可以按照X.X.Y版主说的

    如果需要用户名和密码登录

    你可以先请求一次登陆页面 组装要发送的用户名和密码  设置WebRequest的CookieContainer 就可以的
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年12月9日 1:39
    版主
  • 谢谢~~我用
    str = stream.ReadToEnd()读取了网页文件源码,
    怎么查找这个str里面指定的一些内容

    比如说


    <?xml version="1.0" encoding="utf-8" ?>
    <gameData>
        <Install>
            <game000265 Status="4" TypeId="004" version="1" GameStartFile="shinanrenshang100ceng.dat" RealGameName="是男人上100层" InstallPath="${TAG_INSTALL_PATH}" AutoUpdate="1" RemindComment="1" />
        </Install>
        <GameCmmt />
    </gameData>

    里面这个GameStartFile="shinanrenshang100ceng.dat"
    中的shinanrenshang100ceng.dat


    如果这个GameStartFile="shinanrenshangA.dat"
    GameStartFile="shinanrenshangB.dat"
    出现多次,
    我怎么把这些shinanrenshangXXX全读出来呢?
    正则表达式怎么描述咧?
    2009年12月9日 6:31
  • 比如


    string input = "你的源代码";

    foreach (Match match in Regex.Matches(input, "\"([^\"]+)\""))
    {
        string s = match.Value; 
    }

    知识改变命运,奋斗成就人生!
    2009年12月9日 6:46
    版主
  • 谢谢~
    我刚刚查了下Regex的东西,
    但是还是不明白:
    请问这个表达式是什么意思 "   \"([^\"]+)\"  "

    如果我需要提取所有这种标记当中的文字,怎么写呢?

    <li class="tac mt5"><b>磁悬浮列车</b></li>
    <li class="tac mt5"><b>灰机</b></li>

    我自己写了个,但是
      string Pattern = @"\b<li class='tac mt5'><b>\S*</b></li>\b";
                    MatchCollection Matches = Regex.Matches(str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);

    找到O个。 ╮(╯▽╰)╭。。。
    2009年12月9日 7:02
  • 这样,推荐一个网站你看看,里面还有一个正则练习器。


    知识改变命运,奋斗成就人生!
    • 已标记为答案 阿朵 2009年12月9日 8:44
    2009年12月9日 7:09
    版主
  • 谢谢,@"\bqqq.*ppp\b"
    我查找这个开始的,但是我里面有""引号了。

    我匹配字符串里面有""引号,再定义string Pattern = @……
    就不知道怎么来定义这个转义的。

    string Pattern = @"\b<li class=”tac mt5“><b>.*</b></li>\b";
    百度了很久也没看到这么说这个的。。
    2009年12月9日 7:33
  • 谢谢,那个教程我看了。下载了它的工具来用,非常好用~~!!谢了。
    但是我只能匹配到前面
    \b\\r\\n\\t\\t\\t\\t<li\sclass=\\     用来找  \r\n\t\t\t\t<li class=\  里面加粗的地方。

    那个双引号不知道怎么表示了。

    但是我希望找
    \r\n\t\t\t\t<li class=\"tac mt5\"><b>摩托车</b></li>
    中间的摩托车三个字

    比如说这个片段:

    =4\" >娱乐休闲</a>\r\n\t\t\t<a href=\"/!rich/market.php?cateid=6\" class=\"curr\">交通</a>\r\n\t\t\t<a href=\"/!rich/market.php?cateid=7\" >地产置业</a>\r\n\t\t\t<a href=\"/!rich/market.php?cateid=8\" >奢侈品</a>\r\n\t\t\t<a href=\"/!rich/market.php?cateid=9\" >科技产品</a>\r\n\t\t\t<a href=\"/!rich/market.php?cateid=10\" >军事武器</a>\r\n\t\t</div>\r\n\t\t<div class=\"list_zc\">\r\n\r\n\t\t\t<ul >\r\n\t\t\t\t<li class=\"tac\" style=\"height:165px;\"><img src=\"http://pic1.kaixin001.com/pic/app/25/40/1091_57254053_richitemlogo.jpeg\" alt=\"自行车\"></li>\r\n\t\t\t\t<li class=\"tac mt5\"><b>自行车</b></li>\r\n\t\t\t\t<li class=\"tac mb10\" >8900元<img src=\"http://img.kaixin001.com.cn/i3/dh/icon_u.gif\
    " /></li>\r\n\t\t\t\t\r\n\t\t\t\t<li class=\"linea\" ></li>\r\n\t\t\t\t<li class=\"tac\" ><a href=\"javascript:purchase(114, '8900');\" class=\"butt1\">购买</a></li>\r\n\t\t\t</ul>\r\n\t\t\t<ul >\r\n\t\t\t\t<li class=\"tac\" style=\"height:165px;\"><img src=\"http://pic1.kaixin001.com/pic/app/25/40/1091_57254049_richitemlogo.jpeg\" alt=\"摩托车\"></li>\r\n\t\t\t\t<li class=\"tac mt5\"><b>摩托车</b></li>\r\n\t\t\t\t<li class=\"tac mb10\" >2.55万元<img src=\"h

    2009年12月9日 8:02
  • 通过WebBrowser.Document  操作文档对象 很容易就能将数据进行处理了

    刻苦的创造自己的神化
    • 已标记为答案 阿朵 2009年12月11日 8:07
    2009年12月9日 9:03
  • webRequest没有cookieContainer的啊?在哪里?
    2009年12月10日 4:35
  • 通过WebBrowser.Document  操作文档对象 很容易就能将数据进行处理了

    刻苦的创造自己的神化

    灰常好!
    2009年12月11日 8:08