Пример #1
0
        public IEnumerable <JobVacancy> GetDataFromWebsite()
        {
            var chromeOptions = new ChromeOptions();

            chromeOptions.AddArguments("--headless");

            var driver = new ChromeDriver(_chromeUrl, chromeOptions);

            driver.Navigate().GoToUrl(_websiteUrl);

            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));

            wait.Until(d => d.FindElement(By.CssSelector("#container")));

            var vacancyElements = driver.FindElements(By.CssSelector(".vacancy"));

            foreach (var vacancyElement in vacancyElements)
            {
                //Thread.Sleep(TimeSpan.FromSeconds(5));
                var vacancy = new JobVacancy
                {
                    Title       = vacancyElement.FindElement(By.CssSelector(".title"))?.Text,
                    VacancyUrl  = vacancyElement.FindElement(By.CssSelector(".title a.vt"))?.GetAttribute("href"),
                    CompanyName = vacancyElement.FindElement(By.CssSelector(".company"))?.Text,
                    Description = vacancyElement.FindElement(By.CssSelector(".sh-info"))?.Text
                };
                yield return(vacancy);
            }

            driver.Close();
        }
Пример #2
0
        public static void SendData(JobVacancy job)
        {
            var factory = new ConnectionFactory()
            {
                HostName = "localhost"
            };

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: "hello",
                                         durable: false,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);

                    var properties = channel.CreateBasicProperties();
                    properties.Persistent = true;
                    Console.WriteLine(job.CompanyName);

                    var body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(job));

                    channel.BasicPublish(exchange: "",
                                         routingKey: "hello",
                                         basicProperties: properties,
                                         body: body);
                }
        }