Единственный надежный метод, который я нашел для использования скрипта для загрузки текста из википедии, - cURL. Пока единственный способ сделать это - позвонить os.system()
. Несмотря на то, что вывод корректно отображается в оболочке python, я не могу показаться, что функция возвращает ничего, кроме кода выхода (0
). В качестве альтернативы кто-то может показать, как правильно использовать urllib
.Как получить данные из stdin с помощью os.system()
ответ
import urllib
sock = urllib.urlopen("http://en.wikipedia.org/wiki/Python_(programming_language)")
htmlsource = sock.read()
sock.close()
print htmlsource
Это выведет исходный код для статьи Википедии Python. Я предлагаю вам взглянуть на Dive in Python для более подробной информации.
Пример использования urllib2 из Python Library Reference:
import urllib2
f = urllib2.urlopen('http://www.python.org/')
print f.read(100)
Edit: Кроме того, вы можете захотеть взглянуть на wget.
Edit2: Добавлен urllib2 пример на основе рекомендаций С. Лотт в
Отвечая на вопрос, Python имеет модуль подпроцесса, который позволяет вам взаимодействовать с порожденными процессами. http://docs.python.org/library/subprocess.html#subprocess.Popen
Он позволяет вам читать стандартный вывод для вызванного процесса и даже отправлять элементы в stdin.
однако, как вы сказали, urllib - намного лучший вариант. если вы search stackoverflow, я уверен, вы найдете как минимум 10 других связанных вопросов ...
Как alternetive для urllib, вы можете использовать libCurl Python bindings.
Спасибо, встроенный в браузере справки почти невозможно понять. – GameFreak 2008-12-09 01:29:18