Что нового

[Сеть, интернет] Залогиниться на сайте без использования IE

axlwor

Скриптер
Сообщения
657
Репутация
147
здесь множество людей заново изобретают велосипед, а затем просят научить пользоваться этим новоизобретением :laugh:
 
Автор
vcomp71

vcomp71

Осваивающий
Сообщения
431
Репутация
25
Garrett сказал(а):
Vlasssov
Удовлетворите моё любопытство! ;D
Вот вы авторизировались на сайте, минуя IE через WinHTTP, и... Дальше какие ваши действия?
Могу предположить, что потом вам захочется что-то делать с полученными данными, а как к ним подступится? Нужно будет делать парсер, и разбирать данные, а так как данные будут структурированными, будет желание сделать что-то универсальное. Потом вы захотите визуализировать свои результаты? И в итоге родится ещё один IE :smile:
Vlasssov ничего личного, просто интересно, почему вы идёте сложным путём, какая задача вас на такое толкнула :smile:
Ну вы все правильно написали. Да, действительно - парсер, да действительно, выдернуть информацию, я уже об этом вот тут писал
http://autoit-script.ru/index.php?topic=401.msg16129#msg16129

Универсального делать ничего не надо. Уже вот тут писал почему iE не нравится.
http://autoit-script.ru/index.php/topic,1719.msg12290.html#msg12290

Поэтому после авторизации банально скачиваем страницу. Но.. С отловом htttp заголовков, можно будет просто заголовки отсылать.

Мне, как я уже писал вот тут
http://autoit-script.ru/index.php?topic=2718.msg20665#msg20665
Достаточно отловить все запросы и банально подсовывать данные.

IE нужен только для выдергивания информации со страниц. Парсер - один раз написать.
 
Сообщения
3
Репутация
-1
Тоже обгуглил весь инет в поисках подобных решений БЕЗ IE, включая парсер json и xml, и не нашел готовых решений, зато нашел массу разговоров на тему того что мол альтернативы нет, якобы Webkit можно бы вместо Trident юзать, да у него нет API.

Но вот что меня удивило, так это то, что никто не догадался нагуглить других embedable движков.
Есть же CEF ака Chromium Embedable Framework или говоря проще движок хрома, которые основан на WebKit и в отличии от своего родителя имеет API - поставляется в виде исходников и бинарников позволящих линковать его как статически, так и динамически, и последнее нам как раз и нужно.


На всякий сделал дамп экспортов, описания функционала можно гуглить по их названиям:

Код:
// File name: H:\Users\Voodooman\Documents\SSC 2014\lib\libcef.dll
// Created  : 06.05.2014 14:11
// Type     : Exports


// ClearCrashKeyValueImpl; Index 1;	Information not available

// CrashForException; Index 2;		Information not available

// DumpProcess; Index 3;		Information not available

// DumpProcessWithoutCrash; Index 4;	Information not available

// InjectDumpForHangDebugging; Index 5;	Information not available

// InjectDumpProcessWithoutCrash; Index 6;	Information not available

// IsSandboxedProcess; Index 7;		Information not available

// SetCrashKeyValueImpl; Index 8;	Information not available

// cef_add_cross_origin_whitelist_entry; Index 9;	Information not available

// cef_add_web_plugin_directory; Index 10;	Information not available

// cef_add_web_plugin_path; Index 11;	Information not available

// cef_api_hash; Index 12;		Information not available

// cef_begin_tracing; Index 13;		Information not available

// cef_binary_value_create; Index 14;	Information not available

// cef_browser_host_create_browser; Index 15;	Information not available

// cef_browser_host_create_browser_sync; Index 16;	Information not available

// cef_build_revision; Index 17;	Information not available

// cef_clear_cross_origin_whitelist; Index 18;	Information not available

// cef_clear_scheme_handler_factories; Index 19;	Information not available

// cef_command_line_create; Index 20;	Information not available

// cef_command_line_get_global; Index 21;	Information not available

// cef_cookie_manager_create_manager; Index 22;	Information not available

// cef_cookie_manager_get_global_manager; Index 23;	Information not available

// cef_create_url; Index 24;		Information not available

// cef_currently_on; Index 25;		Information not available

// cef_dictionary_value_create; Index 26;	Information not available

// cef_do_message_loop_work; Index 27;	Information not available

// cef_end_tracing; Index 28;		Information not available

// cef_execute_process; Index 29;	Information not available

// cef_force_web_plugin_shutdown; Index 30;	Information not available

// cef_get_geolocation; Index 31;	Information not available

// cef_get_mime_type; Index 32;		Information not available

// cef_get_path; Index 33;		Information not available

// cef_initialize; Index 34;		Information not available

// cef_is_web_plugin_unstable; Index 35;	Information not available

// cef_launch_process; Index 36;	Information not available

// cef_list_value_create; Index 37;	Information not available

// cef_now_from_system_trace_time; Index 38;	Information not available

// cef_parse_url; Index 39;		Information not available

// cef_post_data_create; Index 40;	Information not available

// cef_post_data_element_create; Index 41;	Information not available

// cef_post_delayed_task; Index 42;	Information not available

// cef_post_task; Index 43;		Information not available

// cef_process_message_create; Index 44;	Information not available

// cef_quit_message_loop; Index 45;	Information not available

// cef_refresh_web_plugins; Index 46;	Information not available

// cef_register_extension; Index 47;	Information not available

// cef_register_scheme_handler_factory; Index 48;	Information not available

// cef_register_web_plugin_crash; Index 49;	Information not available

// cef_remove_cross_origin_whitelist_entry; Index 50;	Information not available

// cef_remove_web_plugin_path; Index 51;	Information not available

// cef_request_context_create_context; Index 52;	Information not available

// cef_request_context_get_global_context; Index 53;	Information not available

// cef_request_create; Index 54;	Information not available

// cef_response_create; Index 55;	Information not available

// cef_run_message_loop; Index 56;	Information not available

// cef_set_osmodal_loop; Index 57;	Information not available

// cef_shutdown; Index 58;		Information not available

// cef_stream_reader_create_for_data; Index 59;	Information not available

// cef_stream_reader_create_for_file; Index 60;	Information not available

// cef_stream_reader_create_for_handler; Index 61;	Information not available

// cef_stream_writer_create_for_file; Index 62;	Information not available

// cef_stream_writer_create_for_handler; Index 63;	Information not available

// cef_string_ascii_to_utf16; Index 64;	Information not available

// cef_string_ascii_to_wide; Index 65;	Information not available

// cef_string_list_alloc; Index 66;	Information not available

// cef_string_list_append; Index 67;	Information not available

// cef_string_list_clear; Index 68;	Information not available

// cef_string_list_copy; Index 69;	Information not available

// cef_string_list_free; Index 70;	Information not available

// cef_string_list_size; Index 71;	Information not available

// cef_string_list_value; Index 72;	Information not available

// cef_string_map_alloc; Index 73;	Information not available

// cef_string_map_append; Index 74;	Information not available

// cef_string_map_clear; Index 75;	Information not available

// cef_string_map_find; Index 76;	Information not available

// cef_string_map_free; Index 77;	Information not available

// cef_string_map_key; Index 78;	Information not available

// cef_string_map_size; Index 79;	Information not available

// cef_string_map_value; Index 80;	Information not available

// cef_string_multimap_alloc; Index 81;	Information not available

// cef_string_multimap_append; Index 82;	Information not available

// cef_string_multimap_clear; Index 83;	Information not available

// cef_string_multimap_enumerate; Index 84;	Information not available

// cef_string_multimap_find_count; Index 85;	Information not available

// cef_string_multimap_free; Index 86;	Information not available

// cef_string_multimap_key; Index 87;	Information not available

// cef_string_multimap_size; Index 88;	Information not available

// cef_string_multimap_value; Index 89;	Information not available

// cef_string_userfree_utf16_alloc; Index 90;	Information not available

// cef_string_userfree_utf16_free; Index 91;	Information not available

// cef_string_userfree_utf8_alloc; Index 92;	Information not available

// cef_string_userfree_utf8_free; Index 93;	Information not available

// cef_string_userfree_wide_alloc; Index 94;	Information not available

// cef_string_userfree_wide_free; Index 95;	Information not available

// cef_string_utf16_clear; Index 96;	Information not available

// cef_string_utf16_cmp; Index 97;	Information not available

// cef_string_utf16_set; Index 98;	Information not available

// cef_string_utf16_to_utf8; Index 99;	Information not available

// cef_string_utf16_to_wide; Index 100;	Information not available

// cef_string_utf8_clear; Index 101;	Information not available

// cef_string_utf8_cmp; Index 102;	Information not available

// cef_string_utf8_set; Index 103;	Information not available

// cef_string_utf8_to_utf16; Index 104;	Information not available

// cef_string_utf8_to_wide; Index 105;	Information not available

// cef_string_wide_clear; Index 106;	Information not available

// cef_string_wide_cmp; Index 107;	Information not available

// cef_string_wide_set; Index 108;	Information not available

// cef_string_wide_to_utf16; Index 109;	Information not available

// cef_string_wide_to_utf8; Index 110;	Information not available

// cef_task_runner_get_for_current_thread; Index 111;	Information not available

// cef_task_runner_get_for_thread; Index 112;	Information not available

// cef_time_delta; Index 113;		Information not available

// cef_time_from_doublet; Index 114;	Information not available

// cef_time_from_timet; Index 115;	Information not available

// cef_time_now; Index 116;		Information not available

// cef_time_to_doublet; Index 117;	Information not available

// cef_time_to_timet; Index 118;	Information not available

// cef_trace_counter; Index 119;	Information not available

// cef_trace_counter_id; Index 120;	Information not available

// cef_trace_event_async_begin; Index 121;	Information not available

// cef_trace_event_async_end; Index 122;	Information not available

// cef_trace_event_async_step_into; Index 123;	Information not available

// cef_trace_event_async_step_past; Index 124;	Information not available

// cef_trace_event_begin; Index 125;	Information not available

// cef_trace_event_end; Index 126;	Information not available

// cef_trace_event_instant; Index 127;	Information not available

// cef_unregister_internal_web_plugin; Index 128;	Information not available

// cef_urlrequest_create; Index 129;	Information not available

// cef_v8context_get_current_context; Index 130;	Information not available

// cef_v8context_get_entered_context; Index 131;	Information not available

// cef_v8context_in_context; Index 132;	Information not available

// cef_v8stack_trace_get_current; Index 133;	Information not available

// cef_v8value_create_array; Index 134;	Information not available

// cef_v8value_create_bool; Index 135;	Information not available

// cef_v8value_create_date; Index 136;	Information not available

// cef_v8value_create_double; Index 137;	Information not available

// cef_v8value_create_function; Index 138;	Information not available

// cef_v8value_create_int; Index 139;	Information not available

// cef_v8value_create_null; Index 140;	Information not available

// cef_v8value_create_object; Index 141;	Information not available

// cef_v8value_create_string; Index 142;	Information not available

// cef_v8value_create_uint; Index 143;	Information not available

// cef_v8value_create_undefined; Index 144;	Information not available

// cef_version_info; Index 145;		Information not available

// cef_visit_web_plugin_info; Index 146;	Information not available

// cef_xml_reader_create; Index 147;	Information not available

// cef_zip_reader_create; Index 148;	Information not available

Брать ежедневные билды здесь http://cefbuilds.com/
Начать читать тут http://code.google.com/p/chromiumembedded/

Надеюсь кто-нибудь запилит поскорей UDF полностью аналогичные подобным для IE включая нейтив функции Autoit, с той лишь разницей, что будет использоваться libcef.dll и в название функций везде вместо IE будет CEF. Реализация XML и JSON парсера через libcef тоже бы пришлась кстати, а то на MS и их MSXML и Tridend надеяться - себя не уважать. Мало того что у них многое работает не так как нужно, так еще и МС любят с каждой новой версией браузера или оси что-то ломать и полностью убивать обратную совместимость.

А с CEF еще и такие бонусы как WebGL внутри AutoIt, поддержка геймпадов, микрофонов, вебкамер, видеокодеков, плагинов Netscape, включая Flash и все прочие прелести HTML5, с которым можно создавать красивые и аппаратно ускоренные интерфейсы, обходя до убожества кривые виндовые API.
 
Сообщения
142
Репутация
-3
Garrett сказал(а):
Vlasssov
Удовлетворите моё любопытство! ;D
Вот вы авторизировались на сайте, минуя IE через WinHTTP, и... Дальше какие ваши действия?
Могу предположить, что потом вам захочется что-то делать с полученными данными, а как к ним подступится? Нужно будет делать парсер, и разбирать данные, а так как данные будут структурированными, будет желание сделать что-то универсальное. Потом вы захотите визуализировать свои результаты? И в итоге родится ещё один IE :smile:
Vlasssov ничего личного, просто интересно, почему вы идёте сложным путём, какая задача вас на такое толкнула :smile:
Я вот над чем-то подобным, поднятым в этой теме, собирался поработать. Видел как-то реализацию бота на php - это было восхитительно.
 
Верх