+ Ответить в теме
Показано с 1 по 22 из 22
  1. #1
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119

    Chromium перехват и модификация HTML кода.

    Снова я=)

    Вопрос такой, можно ли в хромиуме при загрузке страницы перехватывать и модифицировать хытымыэль код, допустим если в коде есть
    Код:
    position='5'
    заменить это на
    Код:
    position='1'
    и грузить страницу с уже измененным кодом. Подскажите пожалуйста как?

  2. #2
    Мастер Аватар для forumrulez
    Регистрация
    16.10.2010
    Адрес
    Киев
    Сообщений
    1,078
    Ну получаешь html страница, ищешь, правишь, выводишь
    Хочу быть синеньким и с надписью "Модератор"
    <script>alert('what')</script>

  3. #3
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Цитата Сообщение от forumrulez Посмотреть сообщение
    Ну получаешь html страница, ищешь, правишь, выводишь
    ну это я понял=D, через str_replace заменять вроде, но что-то не очень соображу как...(

    А именно как записать контент из хромиума в переменную.
    PHP код:
    $repl "position='5'"
    $replace str_replace("position='5'","position='1'",repl);
    c("chromium1")->html $replace
    Последний раз редактировалось userinit; 31.01.2012 в 20:01.

  4. #4
    Мастер Аватар для forumrulez
    Регистрация
    16.10.2010
    Адрес
    Киев
    Сообщений
    1,078
    Поидее так
    PHP код:
    $content  c("chromium1")->html
    Хочу быть синеньким и с надписью "Модератор"
    <script>alert('what')</script>

  5. Пользователь сказал cпасибо:

    userinit (31.01.2012)

  6. #5
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Цитата Сообщение от forumrulez Посмотреть сообщение
    Поидее так
    PHP код:
    {
     
    $content  c("chromium1")->html;
    $replace str_replace('"width": 800,"height": 600,','"width": 1024,"height": 576,',$content);
    c("chromium1")->html $replace;

    А как быть если надо несколько пунктов заменить?

    Не соображу...(

  7. #6
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Еще трабла, куда засунуть код...
    PHP код:
    if (c("Settings->radioGroup1")->itemIndex == 1)
     {
     
    $content  c("chromium1")->html;
    $replace str_replace('"width": 800,"height": 600,','"width": 1024,"height": 576,',$content);
    $replace str_replace('"resolutionID": "1"','"resolutionID": "2"',$content);
    c("chromium1")->html $replace;

    В событие конец загрузки в хромиуме не катит, он бесконечно перезагружает страницу.

  8. #7
    offtop:
    Бота пишешь ?)

  9. #8
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Цитата Сообщение от malish Посмотреть сообщение
    offtop:
    Бота пишешь ?)
    Нет =) Клиент с недокументированными возможностями, скажем так=)

    Да и какой бот с браузером=) разве что кликер=)

  10. #9
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Так кто-нибудь подскажет куда засунуть код...?(


    PHP код:
    if (c("Settings->radioGroup1")->itemIndex == 1)
     {
     
    $content  c("chromium1")->html;
    $replace str_replace('"width": 800,"height": 600,','"width": 1024,"height": 576,',$content);
    $replace str_replace('"resolutionID": "1"','"resolutionID": "2"',$content);
    c("chromium1")->html $replace;


  11. #10
    Мастер Аватар для forumrulez
    Регистрация
    16.10.2010
    Адрес
    Киев
    Сообщений
    1,078
    В таймер засунь, или в изменение radioGroup1
    Хочу быть синеньким и с надписью "Модератор"
    <script>alert('what')</script>

  12. Пользователь сказал cпасибо:

    userinit (01.02.2012)

  13. #11
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Новый трабл, не заменяет код, хотя все вроде верно.

    Может str_replace не подходит? Только строки заменяет? а если у меня среди строки часть кода заменить надо?
    Последний раз редактировалось userinit; 01.02.2012 в 17:25.

  14. #12
    Мастер Аватар для forumrulez
    Регистрация
    16.10.2010
    Адрес
    Киев
    Сообщений
    1,078
    Замени str_relace на preg_replace..., почитай док. по нем
    Например вот
    $content = c("chromium1")->html;
    $text = preg_replace("/position='5'/i", "position='1'", $content);
    file_put_contents($text);
    Последний раз редактировалось forumrulez; 01.02.2012 в 17:54.
    Хочу быть синеньким и с надписью "Модератор"
    <script>alert('what')</script>

  15. Пользователь сказал cпасибо:

    userinit (02.02.2012)

  16. #13
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Цитата Сообщение от forumrulez Посмотреть сообщение
    Замени str_relace на preg_replace..., почитай док. по нем
    Спасибо, разобрался все заменяет =)

    Но теперь новая проблема - после замены и вывода нового контента, не хочет грузиться флешка, если не заменять то все работает, а после вывода не хочет. Что делать? (В опере при редактировании исходного кода таким-же образом - флешка грузится)
    Последний раз редактировалось userinit; 02.02.2012 в 11:52.

  17. #14
    Мастер Аватар для forumrulez
    Регистрация
    16.10.2010
    Адрес
    Киев
    Сообщений
    1,078
    Возможно ты как то цепляешь что то другое, возможно фраза которую ты заменяешь где то есть, по мимо того где тебе надо её заменить
    Хочу быть синеньким и с надписью "Модератор"
    <script>alert('what')</script>

  18. #15
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231
    Нужно html загрузить немного по другому, чтобы пути были от сайта:

    PHP код:
    c("chromium1")->loadString($html, <укажите ваш url к сайту или даже к странице>); 
    Свойство ->html задает урл относительно пути запущенной программы, поэтому путь может быть не корректен.

  19. Пользователь сказал cпасибо:

    userinit (02.02.2012)

  20. #16
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Цитата Сообщение от Devel Посмотреть сообщение
    Свойство ->html задает урл относительно пути запущенной программы, поэтому путь может быть не корректен.
    Огромное спасибо, возможно вы сейчас ответили еще и на вот этот вопрос =)


    т.е. Мне достаточно лишь создать папку с указанными файлами в папке с программой и чтобы пути совпадали и файлы будут грузиться оттуда?
    Последний раз редактировалось userinit; 02.02.2012 в 13:02.

  21. #17
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231
    Цитата Сообщение от userinit Посмотреть сообщение
    Огромное спасибо, возможно вы сейчас ответили еще и на вот этот вопрос =)


    т.е. Мне достаточно лишь создать папку с указанными файлами в папке с программой и чтобы пути совпадали и файлы будут грузиться оттуда?
    Да только в качестве адреса к папкам используйте протокол file://, а не просто адрес. Это будет рутом для относительных путей на странице (css, img и т.д.), относительные пути не должны начинаться со слеша.

  22. 2 пользователя(ей) сказали cпасибо:

    forumrulez (02.02.2012), userinit (02.02.2012)

  23. #18
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Цитата Сообщение от Devel Посмотреть сообщение
    Да только в качестве адреса к папкам используйте протокол file://, а не просто адрес. Это будет рутом для относительных путей на странице (css, img и т.д.), относительные пути не должны начинаться со слеша.
    Хм, дело в том что пути файлов подгружаемые во флешку отредактировать у меня вряд-ли получится...

  24. #19
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119

    =)

    Devel, вообще еще раз спасибо, с вашим кодом все работает, но вы не подскажете нельзя ли каким-нибудь образом для chromium'a заменить определенный адрес на папку на пк? Наподобие как через hosts ?
    Тогда бы решился мой 2й вопрос)

    Вообще в принципе можно сделать подмену через hosts но тогда есть вероятность отказа работы некоторых компонентов флешки да и антивирусы реагировать не лучшим образом будут.
    Последний раз редактировалось userinit; 02.02.2012 в 18:19.

  25. #20
    Мастер Аватар для forumrulez
    Регистрация
    16.10.2010
    Адрес
    Киев
    Сообщений
    1,078
    Возможно что то типо такого
    file:///C:/Users/forumrulez/Desktop/friends.html
    Хочу быть синеньким и с надписью "Модератор"
    <script>alert('what')</script>

  26. #21
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Цитата Сообщение от forumrulez Посмотреть сообщение
    file:///C:/Users/forumrulez/Desktop/friends.html
    Нет, не совсем поняли - именно подменить, чтобы файлы грузились оттуда, а не с сети.(Как хендикеш)

  27. #22
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Ап...

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения