Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 21
1

Браузер с поддержкой JS

27.06.2017, 22:35. Показов 3077. Ответов 9

Author24 — интернет-сервис помощи студентам
Добрый(ое) утро/день/вечер всем, кто читает. Постигла меня следующая участь: требуется накрутить счётчик зрителей стримера twitch. Перепробовал множество способов (с возможностью подсунуть проксю разумеется), пока остановился на Awesomium. Гугл говорит, что у данного пакета dll есть поддержка JS. Но когда перехожу на любую страницу, которой требуется JS, вижу серый фон с красующимся логотипом в центре. (Для теста отключил в хроме JS и зашёл на твитч, увидел ту же картину). Может есть варианты получше? Или есть решение этой проблемы? Если мне удастся обойти эту серую картину, то уже буду циклично через прокси заходить к требуемому стримеру и уже без окна браузера, т.к. есть такая возможность. Выручайте гуру
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2017, 22:35
Ответы с готовыми решениями:

Подскажите браузер с поддержкой html5
Нужен браузер с поддержкой html5 и h.264 Заранее благодарен!

Браузер с поддержкой JavaScript и Flash Player
Здравствуйте можете показать мне, может исходник есть где нибудь. browser with support...

Альтернативный браузер с поддержкой JavaScript
Есть ли нормальные библиотеки браузеров помомо webbrowser, чтобы от настроек IE не зависили? С...

Браузер с поддержкой флешь (не Puffin)
Посоветуйте браузер для Android в котором флешь работает не через прокси, что-бы приложение видело...

9
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
28.06.2017, 05:46 2
REAPER9797, да, действительно. Экран с логотипом. Похоже, что на твиче стоит какая-то защита от подобных способов взаимодействия, так что в данном случае Awesomium, похоже, мало подходит для данной задачи. А скрипты в нём работают прекрасно, более того, он позволяет запускать на уже прогруженной странице свои скрипты, и даже эмулировать работу клавиатуры/мыши, так что в деле взаимодействия с сайтами он более чем крут.

Добавлено через 12 минут
Да, действительно - защита. Проверил ещё на оффскриновом варианте запуска Awesomium-а (он помогает в некоторых случаях) - не грузит ничего.
1
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 21
28.06.2017, 15:26  [ТС] 3
Вчера пробовал CefSharp. На твитч пустило, стрим посмотрел. Есть режим оффскрин. Всё супер, НО! Не могу для каждого экземпляра браузера присвоить проксю. Могу только единожды задать его...
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
28.06.2017, 19:40 4
REAPER9797, ну, с ним подсказать не смогу, сорри. Я в основном по авесомиуму - только он моим потребностям удоблетворяет, хотя косяков у него много, это да...
1
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 21
29.06.2017, 00:04  [ТС] 5
Нашёл вот такой код с пометкой "set proxy at runtime", что означает "задать прокси во время выполнения", т.е. это то что мне нужно. Но не могу разобраться, вылезает исключение
C#
1
2
3
4
5
6
7
8
9
    Cef.UIThreadTaskFactory.StartNew(delegate {
        var rc = this.browser.GetBrowser().GetHost().RequestContext;
        var v = new Dictionary<string, object>();
        v["mode"] = "fixed_servers";
        v["server"] = "scheme://host:port";
        string error;
        bool success = rc.SetPreference("proxy", v, out error);
        //success=true,error=""
    });
Не уверен, что это вообще шарпей
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
29.06.2017, 00:44 6
REAPER9797, Это чистейший шарп. Какое именно исключение вылазит?
1
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 21
29.06.2017, 01:20  [ТС] 7
Вот такое
Миниатюры
Браузер с поддержкой JS  
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
29.06.2017, 01:25 8
REAPER9797, хм... По тому огрызку кода что видно, могу сделать 2 предположения о причинах ошибки:
1) Переменная Cef была инициализирована?
2) В делегате вы используете обращение к this.ChromeBrowser, после чего, инициализируете его ниже.
1
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 21
29.06.2017, 02:16  [ТС] 9
Я сейчас залью проект, можете пожалуйста посмотреть? А то я уже совсем запутался

Добавлено через 2 минуты
Вот полный код формы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;
using System.Threading;
using CefSharp.Internals;
using CefSharp.WinForms.Internals;
 
 
namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        public ChromiumWebBrowser chromeBrowser;
        public Form frm;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            chromeBrowser = new ChromiumWebBrowser("https://2ip.ru/");
 
            Cef.UIThreadTaskFactory.StartNew(delegate {
                var rc = this.chromeBrowser.GetBrowser().GetHost().RequestContext;
                var v = new Dictionary<string, object>();
                v["mode"] = "fixed_servers";
                v["server"] = "http://200.229.202.72:3128";
                string error;
                bool success = rc.SetPreference("proxy", v, out error);
                //success=true,error=""
            });
 
           
 
            frm = new Form();
            frm.Text = "New Form";
            frm.Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill;
            frm.Show();
        } 
    }
    }
Даёт исключение: Browser is not yet initialized. Use the IsBrowserInitializedChanged event and check the IsBrowserInitialized property to determine when the browser has been intialized

Добавлено через 5 минут
http://dropmefiles.com/cr0zc

Это ссылка на архив проекта
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
29.06.2017, 02:34 10
REAPER9797, кароч, смотри в чём у тебя косяк - как я уже говорил - ты сначала обращаешься к браузеру, а потом инициализируешь его. Судя по всему, этот компонент считается полностью инициализированным, только после догрузки формы, на которой он расположен. Вот рабочий код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            chromeBrowser = new ChromiumWebBrowser("https://2ip.ru/");
 
            frm = new Form();
            frm.Text = "New Form";
            frm.Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill;
            frm.Show();
 
 
            Cef.UIThreadTaskFactory.StartNew(delegate {
                var rc = this.chromeBrowser.GetBrowser().GetHost().RequestContext;
                var v = new Dictionary<string, object>();
                v["mode"] = "fixed_servers";
                v["server"] = "http://200.229.202.72:3128";
                string error;
                bool success = rc.SetPreference("proxy", v, out error);
 
                MessageBox.Show(success + " " + error);
                //success=true,error=""
            });
Но я бы вообще перенёс вызов функции перехода на прокси в событие догрузки формы с браузером. Типа "frm.Loaded".
P.S. Прокся эта что-то не особо пашет - посли активации страница тупо не догружается.
0
29.06.2017, 02:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2017, 02:34
Помогаю со студенческими работами здесь

Возможно ли написать браузер с поддержкой Flash?
Возможно ли написать через delphi xe5 браузер с поддержкой Flash? Кому не сложно, подкиньте...

Сложно ли реализовать браузер с поддержкой HTML и картинок
Сложно ли реализовать браузер с поддержкой HTML и картинок? Если можно то как, либо посоветуйте...

Можно ли открыть xlsx (с поддержкой макросов) через телефон, компьютер используя браузер
Хочу попробовать открыть документ xlsx (с поддержкой макросов) через телефон, компьютер используя...

Подскажите бесплатный хостинг с поддержкой MySQL баз и с поддержкой внешних подключений к базе данных
Нужен бесплатный хостинг, у которого нет такого прикола как указание IP адреса явно разрешённого...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru