代码如下
import socket
from urllib.parse import quote_plus
request_txt = """\
GET /geocoder?address={}&output=json HTTP/1.1\r\n\
Host: api.map.baidu.com:80\r\n\
User-Agent: search4.py (Foundations of Python Network Programming)\r\n\
Connection: close\r\n\
\r\n
"""
# 建立会话
def geocode(address):
sock = socket.socket()
sock.connect(('api.map.baidu.com', 80))
request = request_txt.format(quote_plus(address))
sock.sendall(request.encode('ascii'))
raw_reply = b''
while True:
more = sock.recv(4096)
if not more:
break
raw_reply += more
str1 = raw_reply.decode('utf-8')
str1 = str1[str1.index("lng"):str1.index("\n }")].split(",\n ")
lng = float(str1[0].split(":")[1])
lat = float(str1[1].split(":")[1])
return lng,lat
lng,lat = geocode('Afghanistan')
lng,lat