Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python套接字从URL获取HTML内容_Python_Sockets - Fatal编程技术网

使用Python套接字从URL获取HTML内容

使用Python套接字从URL获取HTML内容,python,sockets,Python,Sockets,是否有一种方法可以使用Python中的套接字从URL(而不是主机名)检索网页内容?socket.connect()仅适用于主机名。我可以从www.python.org获得内容,但不能从www.python.org/about获得 谢谢 K找到了答案。我应该在发送到服务器的GET请求中指出路径 在www.python.org/about/中,www.python.org是主机名,/about/是路径。因此,要发送的字符串将是“GET/about HTTP…”。比如: import socket f

是否有一种方法可以使用Python中的套接字从URL(而不是主机名)检索网页内容?socket.connect()仅适用于主机名。我可以从www.python.org获得内容,但不能从www.python.org/about获得


谢谢

K找到了答案。我应该在发送到服务器的GET请求中指出路径

在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)

你绝对想使用
socket
s有什么原因吗?最好使用
requests
module获取htmlshow社区使用socket API检索www.python.org的代码。@MattiLyra,刚刚学习了python中的socket编程,不明白为什么我只能从一些网站获取内容,而不能从其他网站获取内容。