有没有办法使用Python中的套接字从URL(而不是主机名)中检索网页内容? socket.connect()仅适用于主机名。我可以从www.python.org获取内容,但不能访问www.python.org/about。
谢谢!
答案 0 :(得分:1)
在www.python.org/about/中,www.python.org是主机名,而/ about /是路径。因此,要发送的字符串将是" GET / about HTTP ..."。类似的东西:
import socket
from urllib import parse # for separating path and hostname
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
url = parse.urlparse(link)
s.connect((url[1], 80))
msg = "GET " + link[2] + " HTTP/1.0\r\n\r\n"
s.sendall(msg)
s.recv(4096)