Да. Попробуйте отправить запрос HTTP GET, например, минимальный запрос к серверу HTTP 1.1:
import socket
s = socket.socket()
s.connect(('httpbin.org', 80))
request = '\r\n'.join(('GET /get HTTP/1.1', 'Host: httpbin.org', '', ''))
s.send(request)
response = s.recv(1024)
>>> print(response)
HTTP/1.1 200 OK
Connection: keep-alive
Server: gunicorn/19.7.1
Date: Thu, 03 May 2018 22:40:59 GMT
Content-Type: application/json
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
X-Powered-By: Flask
X-Processed-Time: 0
Content-Length: 159
Via: 1.1 vegur
{
"args": {},
"headers": {
"Connection": "close",
"Host": "httpbin.org"
},
"origin": "220.233.14.203",
"url": "http://httpbin.org/get"
}
Это гораздо больше работы, чем вам нужно сделать, однако. Попробуйте использовать библиотеку, например requests
:
import requests
r = requests.get('http://httpbin.org/get')
>>> print(r.text)
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.18.4"
},
"origin": "220.233.14.203",
"url": "http://httpbin.org/get"
}
Или стандартная библиотека urlopen()
функция.