【发布时间】:2016-03-23 16:16:07
【问题描述】:
我正在尝试编写一个从用户输入的网站获取 html 代码的代码。我需要在不使用 urllib 或其他此类库的情况下编写此内容。
from socket import *
url = (input("Please enter url: "))
host=gethostbyname(url)
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((host,80))
clientSocket.send(("GET " + host + "HTTP/1.1\n\n").encode("UTF-8"))
file = clientSocket.recv(1024)
print("The html code: ", file.decode("UTF-8"))
clientSocket.close()
代码运行良好。但是,当我输入诸如“www.stackoverflow.com”之类的网站时,我会收到来自主机的“错误请求”响应:
The html code: HTTP/1.1 400 Bad Request
Date: Wed, 23 Mar 2016 16:14:27 GMT
Content-Type: text/html
Content-Length: 177
Connection: close
Server: -nginx
CF-RAY: -
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>cloudflare-nginx</center>
</body>
</html>
为了从服务器获取实际的 html 代码,正确的请求是什么。谢谢
【问题讨论】: