Открытие рамки сайта или изображения в python - PullRequest
2 голосов
/ 31 августа 2010

Так что я довольно хорошо разбираюсь в python и много использовал urllib2 и Cookies для автоматизации сайта Я просто наткнулся на модуль "webbrowser", который может открыть URL в вашем браузере по умолчанию. Мне интересно, можно ли выбрать только один объект из этого URL и открыть его. В частности, я хочу открыть «капчу», чтобы пользователь мог ввести ее и продолжить делать что-то еще.

это строка, содержащая капчу в html, я думаю:

script type="text/javascript" src="http://api.recaptcha.net/challenge?k=6LcZ-AAAAAAAANX-xwVtzow1f4RpSrbSViRUx9Js"></script>    <input type="submit" name="submitBtn" value="Submit" 

и нажав на эту ссылку API, откроется это:

var RecaptchaState = {
    site : '6LcZ-AAAAAAAANX-xwVtzow1f4RpSrbSViRUx9Js',
    challenge : '03AHJ_VuvoUHPdfoXLsVHGa7a26GR9s9Y5dkyKmqk2XsJ1SdiwF_2u0SV_sKnr1artkpc-5MjUe7SYD40xr7sAyvikKwpFCQTBdKUFfl76UP6EbDhezoTC8B1X8fjixuIJ4wJhI6yTc8vlX4ioh6je9lwFbPXllbGh2w',
    is_incorrect : false,
    programming_error : '',
    error_message : '',
    server : 'http://www.google.com/recaptcha/api/',
    timeout : 18000
};

document.write('<scr'+'ipt type="text/javascript" s'+'rc="' + RecaptchaState.server + 'js/recaptcha.js"></scr'+'ipt>');

любая информация поможет с этим.

1 Ответ

4 голосов
/ 31 августа 2010

Это невозможно с модулем веб-браузера.Все, что делает веб-браузер, - это простой способ определить веб-браузер по умолчанию и передать ему URL-адрес.

Если вы хотите отобразить только часть страницы, вам нужно что-то, что может принимать произвольные фрагменты HTML илипосле загрузки страницы может добавить Javascript для удаления ненужных элементов.

Для этого вам нужно создать специальный веб-браузер, представляющий собой не более чем диалоговое окно, содержащее веб-виджет.

Это можно сделать с помощью любой из следующих комбинаций библиотек:

Мой совет:

  • Если с лицензией GPL все в порядке, используйте PyQt.
  • Если с лицензией GPL все в порядке:
    • Для Linux используйте PySide или PyGTK с PyWebKitGTK (GTKMozEmbed имеет большой вес)
    • Для Windows используйте wxPython с wxIEHtmlWindow
    • Для OSX вам нужно будет спросить кого-то еще.
...