Форум программистов, компьютерный форум, киберфорум
C#: API, боты
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 11
1

Парсер с использованием Selenium, phantomJS

30.07.2020, 19:21. Просмотров 1827. Ответов 9
Метки нет (Все метки)

Доброго времени суток. Подскажите, пожалуйста по следующему вопросу: есть сайт (https://www.sofascore.com/ru), я хочу получить с него некоторую информацию. Использую C# вместе с Selenium, phantomJS. Когда загружаю этот сайт и делаю скриншот содержимого, то получаю следующую картинку(в закрепе) Т.е. ни календарь, ни сами матчи не подгружаются, несмотря даже на длительную задержку. Код того же календаря выглядит следующим образом:
HTML5
1
2
3
4
5
6
7
8
9
<div class="calendar-container">
            <div class="calendar js-list-sport-calendar"></div>
            <div class="calendar__action calendar__action--desktop">
                <a href="/ru/football" class="interactive js-link">
                    <div class="calendar__today-btn">Сегодня</div>
                </a>
                <div class="calendar__time js-list-sport-clock-time">15:09</div>
            </div>
        </div>
Как корректно отобразить тот же календарь? Как получить данные матчей? Я так понимаю, что они подгружаются динамично, но как это происходит? Исследование работы данного сайта с помощью инструментов разработчика гугл хрома ни к чему не привели.
Код программы предельно прост: инициализация веб-драйвера с измененным юзер-агентом и переход по ссылке.
0
Миниатюры
Парсер с использованием Selenium, phantomJS  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2020, 19:21
Ответы с готовыми решениями:

Многопроцессорный парсер теряет ссылки при паринге (selenium+PhantomJS+ProcessPoolExecutor)
Я хочу написать парер для некоторого вебсайта, который имеет много JS кодов. Для этого я решил...

Selenium+PhantomJS
Не могу понять в чем проблема. Парсю страничку kingtaro.com Проблема со временем, если я использую...

Selenium + PhantomJS + прокси
Как подружить вебдрайвер селениума и фантомжс с прокси? # -*- coding: utf8 -*- import os...

Selenium + phantomjs + proxy
Возможно ли так сделать? Нагуглить ничего не получилось. Знающие, помогите.

9
поисковый робот
29 / 22 / 8
Регистрация: 04.02.2020
Сообщений: 96
30.07.2020, 20:29 2
Цитата Сообщение от TheWispy Посмотреть сообщение
Код программы предельно прост: инициализация веб-драйвера с измененным юзер-агентом и переход по ссылке.
А код то где ? Народ ведь тоже темой интересуется ...

Нормальный скриншот получается . с календарем

C#
1
2
3
4
5
6
7
8
       //create the reference for the browser  
                IWebDriver driver = new ChromeDriver();
                // navigate to URL  
                driver.Navigate().GoToUrl("https://www.sofascore.com/ru/");
                //Take the screenshot
                Screenshot image = ((ITakesScreenshot)driver).GetScreenshot();
                //Save the screenshot
                image.SaveAsFile("Screenshot.png");
0
Миниатюры
Парсер с использованием Selenium, phantomJS  
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 11
30.07.2020, 20:33  [ТС] 3
C#
1
2
3
4
5
6
7
8
9
string url = Console.ReadLine();
            int timeToDie = int.Parse(Console.ReadLine());
            var options = new PhantomJSOptions();
            options.AddAdditionalCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");
            PhantomJSDriver pjs = new PhantomJSDriver(options);
            pjs.Manage().Window.Maximize();
            pjs.GetScreenshot().SaveAsFile("test.png");
            File.WriteAllText("pageSource.txt",pjs.PageSource);
            pjs.Close();
Я так понимаю, что вы используете полноценный браузер? Имею в виду, что у вас запускается гугл, верно?
0
поисковый робот
29 / 22 / 8
Регистрация: 04.02.2020
Сообщений: 96
30.07.2020, 20:34 4
Цитата Сообщение от TheWispy Посмотреть сообщение
Я так понимаю, что вы используете полноценный браузер? Имею в виду, что у вас запускается гугл, верно?
да. именно так.
0
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 11
30.07.2020, 20:37  [ТС] 5
Я пытаюсь для решения своей задачи использовать "безликий" браузер, т.е. PhantomJS.
0
cpp_user
30.07.2020, 20:45
  #6

Не по теме:

Цитата Сообщение от TheWispy Посмотреть сообщение
PhantomJS.
этим не пользовался .
собираю данные с сайтов node js + puppeteer. тут на киберфоруме посоветовали .
больше нравится чем Selenium . очень выручает. (нужно знать JavaScript)

0
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 11
30.07.2020, 20:49  [ТС] 7
cpp_user, спасибо за совет, посмотрю на досуге.
0
поисковый робот
29 / 22 / 8
Регистрация: 04.02.2020
Сообщений: 96
30.07.2020, 22:27 8
Цитата Сообщение от TheWispy Посмотреть сообщение
Я пытаюсь для решения своей задачи использовать "безликий" браузер, т.е. PhantomJS.
так а какая разница что использовать. И с селениумом можно спрятать окно браузера .

Скриншот иногда получается размытым. Поэтому задержку на 2 сек. добавил. Тогда качество скрина хорошее.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
           ChromeDriverService service = ChromeDriverService.CreateDefaultService();      
            ChromeOptions options = new ChromeOptions();
            options.AddArguments("--headless");
 
                //create the reference for the browser  
                IWebDriver driver = new ChromeDriver(service, options);
               
                driver.Manage().Window.Size = new System.Drawing.Size(1024, 768);
               // navigate to URL  
                driver.Navigate().GoToUrl("https://www.sofascore.com/ru/");
 
                Thread.Sleep(2000);
                //Take the screenshot
                Screenshot image = ((ITakesScreenshot)driver).GetScreenshot();
                //Save the screenshot
                image.SaveAsFile("Screenshot.png");
 
                driver.Close();
1
2411 / 1866 / 337
Регистрация: 22.07.2011
Сообщений: 7,164
31.07.2020, 00:20 9
ну разница в том . что фантом вроде как давно не развивался , последний релиз 2016 года. , немудрено , если он тупо не может собрать правильно контент.
П.С матчи там по get запросу отдаются в json формате.
https://www.sofascore.com/football///json
1
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 11
31.07.2020, 00:48  [ТС] 10
sau, да, я тоже начал смотреть в сторону данных запросов. А какие у фантома есть альтернативы?
Спасибо за ответ!

Добавлено через 1 минуту
cpp_user, хмм... Спасибо, я попробую данный вариант!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2020, 00:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Прокси в Selenium (PhantomJS)
Привет всем, нуждаюсь в помощи касательно того, как задать прокси в Selenium (PhantomJS). Пробовал...

Selenium PhantomJS. Прокси с авторизацией
Всем привет, столкнулся с проблемой по установке прокси для фантомжс (прокси именно с...

Парсинг js с python, selenium, phantomjs
Здравствуйте! Вот страница https://1xmavemv.com/ru/live/Handball/ (не реклама) Возле каждого...

[Selenium + phantomJS] Работа с всплывающими окнами на сайтах
Делаю бота для Instagram, все успешно, авторизовываюсь, перехожу в профиль, хочу выйти с аккаунта,...

Как полностью скрыть работу Selenium c PhantomJS?
Хочу написать бота. Браузер PhantomJS, хочу полностью скрыть работу браузера. Приложения пишу на...

Почему цикл обрывается? Парсер на Selenium
Парсю страничку селениуом https://www.oddsportal.com/events/ Пытаюсь вытащить ссылки из меню...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.