Скрипт для подключения к веб-странице - PullRequest
1 голос
/ 10 сентября 2009

Ищем скрипт на python, который бы просто подключался к веб-странице (возможно, с некоторыми параметрами строки запроса).

Я собираюсь запустить этот скрипт как пакетное задание в Unix.

Ответы [ 7 ]

11 голосов
/ 10 сентября 2009

urllib2 будет делать то, что вы хотите, и его довольно просто использовать.

import urllib
import urllib2

params = {'param1': 'value1'}

req = urllib2.Request("http://someurl", urllib.urlencode(params))
res = urllib2.urlopen(req)

data = res.read()

Это также хорошо, потому что легко модифицировать приведенный выше код, чтобы выполнять все другие функции, такие как запросы POST, обычная аутентификация и т. Д.

3 голосов
/ 10 сентября 2009

Если вам нужно, чтобы ваш скрипт действительно функционировал как пользователь сайта (щелкая ссылки и т. Д.), То вы, вероятно, ищете библиотеку python mechanize.

Python Mechanize

2 голосов
/ 10 сентября 2009

Попробуйте это:

aResp = urllib2.urlopen("http://google.com/");
print aResp.read();
2 голосов
/ 10 сентября 2009

Простого wget , вызываемого из сценария оболочки, может быть достаточно.

0 голосов
/ 31 марта 2018

в Python 2.7:

import urllib2
params = "key=val&key2=val2" #make sure that it's in GET request format
url = "http://www.example.com"
html = urllib2.urlopen(url+"?"+params).read()
print html

больше информации на https://docs.python.org/2.7/library/urllib2.html

в питоне 3.6:

from urllib.request import urlopen
params = "key=val&key2=val2" #make sure that it's in GET request format
url = "http://www.example.com"
html = urlopen(url+"?"+params).read()
print(html)

больше информации на https://docs.python.org/3.6/library/urllib.request.html

для кодирования параметров в формате GET:

def myEncode(dictionary):
    result = ""
    for k in dictionary: #k is the key
        result += k+"="+dictionary[k]+"&"
    return result[:-1] #all but that last `&`

Я почти уверен, что это должно работать как в python2, так и в python3 ...

0 голосов
/ 10 сентября 2009

Возможно, вы захотите просто использовать httplib из стандартной библиотеки.

myConnection = httplib.HTTPConnection('http://www.example.com')

Официальную ссылку вы можете найти здесь: http://docs.python.org/library/httplib.html

0 голосов
/ 10 сентября 2009

Что вы пытаетесь сделать? Если вы просто пытаетесь получить веб-страницу, cURL - это уже существующий (и очень распространенный) инструмент, который делает именно это.

Основное использование очень просто:

curl www.example.com
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...