Как я могу получить python для получения содержимого страницы HTTP? Пока все, что у меня есть, это запрос, и я импортировал http.client.
Python 3 Получить страницу HTTP
Ответ 1
Использование urllib.request
, вероятно, самый простой способ сделать это:
import urllib.request
f = urllib.request.urlopen("http://stackoverflow.com")
print(f.read())
Ответ 2
Вы также можете использовать библиотеку запросов. Я нашел это особенно полезным, потому что было легче получить и отобразить HTTP-заголовок.
import requests
source = 'http://www.pythonlearn.com/code/intro-short.txt'
r = requests.get(source)
print('Display actual page\n')
for line in r:
print (line.strip())
print('\nDisplay all headers\n')
print(r.headers)
Ответ 3
Использование встроенного модуля "http.client"
import http.client
connection = http.client.HTTPSConnection("api.bitbucket.org", timeout=2)
connection.request('GET', '/2.0/repositories')
response = connection.getresponse()
print('{} {} - a response on a GET request by using "http.client"'.format(response.status, response.reason))
content = response.read().decode('utf-8')
print(content[:100], '...')
Результат:
200 OK - ответ на запрос GET с использованием "http.client" { "pagelen" : 10, "values" : [{ "scm" : "hg" , "website" : "," has_wiki ": true," name ":" tweakmsg "," links...
Использование сторонних библиотек "запросы"
response = requests.get("https://api.bitbucket.org/2.0/repositories")
print('{} {} - a response on a GET request by using "requests"'.format(response.status_code, response.reason))
content = response.content.decode('utf-8')
print(content[:100], '...')
Результат:
200 OK - ответ на запрос GET с использованием "http.client" { "pagelen" : 10, "values" : [{ "scm" : "hg" , "website" : "," has_wiki ": true," name ":" tweakmsg "," links...
Использование встроенного модуля "urllib.request"
response = urllib.request.urlopen("https://api.bitbucket.org/2.0/repositories")
print('{} {} - a response on a GET request by using "urllib.request"'.format(response.status, response.reason))
content = response.read().decode('utf-8')
print(content[:100], '...')
Результат:
200 OK - ответ на запрос GET с использованием "http.client" { "pagelen" : 10, "values" : [{ "scm" : "hg" , "website" : "," has_wiki ": true," name ":" tweakmsg "," links...
Примечания:
- Python 3.4
- Результат от ответов скорее всего будет отличаться только контентом
Ответ 4
Добавьте этот код, который может форматировать данные для чтения человеком:
text = f.read().decode('utf-8')
Ответ 5
fooobar.com/info/231890/... Проверьте это. Это о том же, что и у вас, и это очень простое и очень мало строк кодов. Это помогло мне, когда я понял, что python3 не может использовать просто get_page.
Это прекрасная альтернатива. (надеюсь, это поможет, приветствует!)