使用C#更好的方法来在第三方网站上搜索数据

sarvpk

这是我的要求。有一个公共网站,该网站以字母数字字符串作为输入,并将数据检索到表格元素中(通过单击按钮)。table元素具有几个标签,这些标签中填充了相应的数据。我需要一个可以检查网站数据库中是否存在特定字符串的工具/解决方案。如果是这样,则检索该字符串所有出现的所有Id。查看网站的“查看源代码”(此处未使用JavaScript),我记下了输入元素名称和按钮元素名称,并在现有示例的帮助下获得了可行的解决方案。以下是有效的代码,但我想检查是否有更好,更快速的方法。我知道以下代码有一些问题,例如“无限循环”问题和其他问题。

    namespace SearchWebSite
    {
        public partial class Form1 : Form
        {
            bool searched = false;
            long i; 

            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                i = 1;
                WebBrowser browser = new WebBrowser();
                string target = "http://www.SomePublicWebsite.com";
                browser.Navigate(target);
                browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(XYZ);
            }


            private void XYZ(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                WebBrowser b = null;
                if (searched == false)
                {
                    b = (WebBrowser)sender;
                    b.Document.GetElementById("txtId").InnerText = "M" + i.ToString();
                    b.Document.GetElementById("btnSearch").InvokeMember("click");
                    searched = true;
                }

                if (b.ReadyState == WebBrowserReadyState.Complete)
                {
                    if (b.Document.GetElementById("lblName") != null)
                    {
                        string IdNo = "M" + i.ToString();
                        string DateString = b.Document.GetElementById("lblDate").InnerHtml;
                        string NameString = b.Document.GetElementById("lblName").InnerHtml;

                        if (NameString != null && (NameString.Contains("XXXX") || NameString.Contains("xxxx")))
                        {
                            using (StreamWriter w = File.AppendText("log.txt"))
                            {
                                w.WriteLine("Id {0}, Date {1}, Name {2}", IdNo, DateString, NameString);
                                i = i + 1;
                                searched = false;
                            }
                        }
                        else
                        {
                            i = i + 1;
                            searched = false;
                        }
                    }
                    else
                    {
                        i = i + 1;
                        searched = false;
                    }
                }
            }
        }
    }
戈尔克姆·哈卢卢

如果单击Seach按钮后的页面包含的txtId和btnSearch控件超出了您可以使用此代码段的范围,那么这并不是更快,但我认为是正确的形式。

public partial class Form1 : Form
{
    bool searched = false;
    long i = 1;
    private string IdNo { get { return "M" + i.ToString(); } }
    public Form1()
    {
        InitializeComponent(); 
    }

    private void button1_Click(object sender, EventArgs e)
    {
        i = 1;
        WebBrowser browser = new WebBrowser();
        string target = "http://www.SomePublicWebsite.com";
        browser.Navigate(target);
        browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(XYZ);
    }
    private void XYZ(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser b = (WebBrowser)sender;
        if (b.ReadyState == WebBrowserReadyState. Complete)
        {
            if (searched == false)
            {
                DoSearch(b); return;
            }
            if (b.Document.GetElementById("lblName") != null)
            {
                string DateString = b.Document.GetElementById("lblDate").InnerHtml;
                string NameString = b.Document.GetElementById("lblName").InnerHtml;

                if (NameString != null && (NameString.Contains("XXXX") || NameString.Contains("xxxx")))
                    using (StreamWriter w = File.AppendText("log.txt"))
                        w.WriteLine("Id {0}, Date {1}, Name {2}", IdNo, DateString, NameString);
            }
            i++;
            DoSearch(b);
        }
    }
    private void DoSearch(WebBrowser wb)
    {
        wb.Document.GetElementById("txtId").InnerText = IdNo;
        wb.Document.GetElementById("btnSearch").InvokeMember("click");
        searched = true;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何自动从第三方网站对网站进行数据库搜索?

来自分类Dev

使用Laravel Passport登录第三方网站

来自分类Dev

需要第三方实现的C#接口

来自分类Dev

通过第三方代码,C# 解密

来自分类Dev

在第三方网站上嵌入Google Analytics(分析)基准测试报告

来自分类Dev

如何让我的第三方脚本在我的网站上正常运行?

来自分类Dev

使用第三方控件

来自分类Dev

使用第三方控件

来自分类Dev

第三方库的使用

来自分类Dev

来自第三方的网络响应,使用其给定的API,C#

来自分类Dev

如何在C#中使用第三方https wsdl Web服务

来自分类Dev

来自第三方的网络响应,使用其给定的API,C#

来自分类Dev

NSLookup在C#中使用第三方库

来自分类Dev

使用 Selenium C# 覆盖第三方网页中的 JS

来自分类Dev

网站可以做些什么来整合第三方Cookie

来自分类Dev

网站可以做些什么来整合第三方Cookie

来自分类Dev

如何从Django中的第三方网站获取我的网站的数据

来自分类Dev

我可以使用第三方视频内容门户网站(例如youtube)在自己的网络门户网站上上传和发布视频吗?

来自分类Dev

没有API的第三方网站抓取

来自分类Dev

从第三方网站捕获用户数据

来自分类Dev

将表单数据从第三方网站发布到 Django

来自分类Dev

在第三方网站上的iframe中访问时,未为子域设置Django csrf cookie

来自分类Dev

从第三方网站检索Cookie /会话内容的最佳方法是什么?

来自分类Dev

如何使用Google Analytics(分析)针对第三方网站创建跟踪像素?

来自分类Dev

如何使用AngularJs构建可嵌入第三方网站的小部件?

来自分类Dev

计算类的实例-使用Firebug将jQuery注入第三方网站吗?

来自分类Dev

如何使用php从第三方网站解析格式错误的RSS feed?

来自分类Dev

Django:如何通过使用DRY原理来覆盖第三方视图?

来自分类Dev

在不使用C#的第三方库的情况下将图像转换为PDF

Related 相关文章

  1. 1

    如何自动从第三方网站对网站进行数据库搜索?

  2. 2

    使用Laravel Passport登录第三方网站

  3. 3

    需要第三方实现的C#接口

  4. 4

    通过第三方代码,C# 解密

  5. 5

    在第三方网站上嵌入Google Analytics(分析)基准测试报告

  6. 6

    如何让我的第三方脚本在我的网站上正常运行?

  7. 7

    使用第三方控件

  8. 8

    使用第三方控件

  9. 9

    第三方库的使用

  10. 10

    来自第三方的网络响应,使用其给定的API,C#

  11. 11

    如何在C#中使用第三方https wsdl Web服务

  12. 12

    来自第三方的网络响应,使用其给定的API,C#

  13. 13

    NSLookup在C#中使用第三方库

  14. 14

    使用 Selenium C# 覆盖第三方网页中的 JS

  15. 15

    网站可以做些什么来整合第三方Cookie

  16. 16

    网站可以做些什么来整合第三方Cookie

  17. 17

    如何从Django中的第三方网站获取我的网站的数据

  18. 18

    我可以使用第三方视频内容门户网站(例如youtube)在自己的网络门户网站上上传和发布视频吗?

  19. 19

    没有API的第三方网站抓取

  20. 20

    从第三方网站捕获用户数据

  21. 21

    将表单数据从第三方网站发布到 Django

  22. 22

    在第三方网站上的iframe中访问时,未为子域设置Django csrf cookie

  23. 23

    从第三方网站检索Cookie /会话内容的最佳方法是什么?

  24. 24

    如何使用Google Analytics(分析)针对第三方网站创建跟踪像素?

  25. 25

    如何使用AngularJs构建可嵌入第三方网站的小部件?

  26. 26

    计算类的实例-使用Firebug将jQuery注入第三方网站吗?

  27. 27

    如何使用php从第三方网站解析格式错误的RSS feed?

  28. 28

    Django:如何通过使用DRY原理来覆盖第三方视图?

  29. 29

    在不使用C#的第三方库的情况下将图像转换为PDF

热门标签

归档