Управление браузером с помощью Python, на Mac

Я ищу способ программно управлять браузером на Mac (т.е. Firefox или Safari или Chrome/-ium или Opera, но не IE) использование Python.

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

Какое решение Вы рекомендовали бы?

9
задан kenorb 26 May 2017 в 14:03
поделиться

7 ответов

Взгляните на PyShell (расширение PyXPCOM).

Пример:

promptSvc = components.classes["@mozilla.org/embedcomp/prompt-service;1"].\
        getService(Components.interfaces.nsIPromptService)
promptSvc.alert(None, 'Greeting...', "Hello from Python")

Python PyShell 0.1, Mozilla, popup, OK

0
ответ дан 4 December 2019 в 11:04
поделиться

Может быть немного ограничивающим, но py-appscript может быть самым простым способом управления браузером с поддержкой Applescript из Python.

Для более сложных задач вы можете использовать PyObjC практически для чего угодно - например, webkit2png - это сценарий Python, который использует WebKit для загрузки страницы и сохранения ее изображения. Вам необходимо иметь хорошее представление о Objective-C и Cocoa / etc, чтобы использовать его (поскольку он просто предоставляет объекты ObjC для Python)

Масштабирование экрана может достичь желаемого с гораздо меньшей сложностью.

2
ответ дан 4 December 2019 в 11:04
поделиться

Некоторыми приложениями Mac можно управлять с помощью OSAScript (он же AppleScript), который можно отправить с помощью команды osascript . У О'Рейли есть статья о вызове osascript из Python . Я не могу поручиться за то, что он делает именно то, что вы хотите, но это отправная точка.

1
ответ дан 4 December 2019 в 11:04
поделиться

Мне нравится Selenium , его можно использовать в сценариях через Python . Selenium IDE работает только в Firefox, но Selenium RC поддерживает несколько браузеров.

7
ответ дан 4 December 2019 в 11:04
поделиться

Ознакомьтесь с python-browsercontrol .

Вы также можете прочитать эту страницу форума (я знаю, она старая, но кажется чрезвычайно важной для вашего вопроса): http://bytes.com/topic/python/answers/ 45528-python-client-side-browser-script-language

Также: http://docs.python.org/library/webbrowser.html

Пример:

from browser import *
my_browser = Firefox(99, '/usr/lib/firefox/firefox-bin') my_browser.open_url('cnn.com')

open_url возвращается, когда документ домашней страницы cnn.com загружается во фрейм браузера.

4
ответ дан 4 December 2019 в 11:04
поделиться

Попробуйте механизировать , если вам на самом деле не нужен браузер.

Пример:

import re
import mechanize

br = mechanize.Browser()
br.open("http://www.example.com/")
# follow second link with element text matching regular expression
response1 = br.follow_link(text_regex=r"cheese\s*shop", nr=1)
assert br.viewing_html()
print br.title()
print response1.geturl()
print response1.info()  # headers
print response1.read()  # body

br.select_form(name="order")
# Browser passes through unknown attributes (including methods)
# to the selected HTMLForm.
br["cheeses"] = ["mozzarella", "caerphilly"]  # (the method here is __setitem__)
# Submit current form.  Browser calls .close() on the current response on
# navigation, so this closes response1
response2 = br.submit()
2
ответ дан 4 December 2019 в 11:04
поделиться

Посмотрите spynner модуль Python.

Spynner - это программный модуль веб-браузера с отслеживанием состояния для Python. Он основан на PyQT и WebKit. Он поддерживает Javascript, AJAX и все другие технологии, которые может обрабатывать! WebKit (Flash, SVG, ...). Spynner использует JQuery. мощная библиотека Javascript, которая упрощает взаимодействие со страницами и моделирование событий.

Используя Spynner, вы можете смоделировать веб-браузер без графического интерфейса пользователя (хотя окно просмотра может быть открыто для целей отладки), поэтому его можно использовать для реализации поисковых роботов или инструментов приемочного тестирования.

См. несколько примеров на странице GitHub .

2
ответ дан 4 December 2019 в 11:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: