使用C#实现登录第三方网站功能(大麦)

使用到的库:Selenium(以谷歌浏览器为例,若要使用别的浏览器,安装对应浏览器的Driver包即可)

 代码如下:

class Program
    {
        public static string m_loginUrl = "https://passport.damai.cn/login?ru=https%3A%2F%2Fwww.damai.cn%2F";
        public static string m_account = "";
        public static string m_password = "";
        public static string m_searchKeyWords = "";
        public static string m_cityKeyWords = "";
        public static IWebDriver m_driver;

        public static void Main(string[] args)
        {
            InitWebDriver();

            Login();

            SearchConcert();

            ChooseConcert();
        }

        public static void InitWebDriver()
        {
            ChromeOptions options = new ChromeOptions();
            options.AddAdditionalChromeOption("useAutomationExtension", false);
            options.AddExcludedArgument("enable-automation");
            options.AddArgument("--start-maximized");
            options.AddArgument("disable-infobars");
            // 反爬虫特征处理
            options.AddArgument("--disable-blink-features=AutomationControlled");
            options.AddUserProfilePreference("credentials_enable_service", false);
            options.AddUserProfilePreference("profile.password_manager_enable", false);

            m_driver = new ChromeDriver(options);
        }

        public static void Login()
        {
            m_driver.Navigate().GoToUrl(m_loginUrl);
            m_driver.SwitchTo().Frame(0);
            m_driver.FindElement(By.CssSelector("#fm-login-id")).SendKeys(m_account);
            m_driver.FindElement(By.CssSelector("#fm-login-password")).SendKeys(m_password);
            m_driver.FindElement(By.CssSelector("#login-form > div.fm-btn > button")).Click();
            IWebElement slider = m_driver.FindElement(By.CssSelector("#nc_1_n1z"));
            if (slider.Displayed)
            {
                Actions action = new Actions(m_driver);
                action.ClickAndHold(slider).Perform();
                action.MoveByOffset(260, 0).Perform();
                action.Pause(new TimeSpan(1)).Release().Perform();
            }
        }

        public static void SearchConcert()
        {
            Thread.Sleep(2000);
            m_driver.SwitchTo().Window(m_driver.WindowHandles[0]);
            m_driver.FindElement(By.CssSelector("body > div.dm-header-wrap > div > div.search-header > input")).SendKeys(m_searchKeyWords);
            m_driver.FindElement(By.CssSelector("body > div.dm-header-wrap > div > div.search-header > div.btn-search")).Click();
        }

        public static void ChooseConcert()
        {
            var elements = m_driver.FindElements(By.CssSelector("body > div.search-box > div.search-box-flex > div.search-main > div.search__itemlist > div.item__main > div.item__box > div.items > div.items__txt > div.items__txt__title"));
            foreach (IWebElement element in elements)
            {
                if (element.Text.Contains(m_cityKeyWords))
                {
                    Console.WriteLine(string.Format($"{element.Text}"));
                    element.Click();
                }
            }
        }
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值