我目前正在努力实现TCP和HTTP协议,以便访问并向用户显示RSS提要,然后用户可以选择一个以查看更多内容。我只允许使用下面显示的import语句(不幸的是,没有内置的python库)。对于我来说,这整个项目很费力,我什至不知道从哪里开始,但是直到解决此错误,我才能进一步。
经过3个小时的谷歌搜索,以前的答案似乎都无法解决我的问题。我尝试查看以下内容:我已连接到Internet,已关闭代理,已验证URL确实有效,我已连接到端口80,没有多余的空间。
据我所知,一切都井井有条,编码正确,并且我的计算机设置适当。代码的相关部分如下:
import socket
import sys
import webbrowser
import os
from urllib.parse import urlparse
from bs4 import BeautifulSoup
# ---------------------------------------------------------------------
def main():
my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_port = 80
# The size of the TCP receive buffer
buffer_size = 16
urlRssname = 'http://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml?edition=int'
parseUrl = urlparse(urlRssname)
print(parseUrl)
print('connecting to {} on port {}'.format(urlRssname, 80))
my_socket.connect((urlRssname, server_port))
print(urlRssname)
它永远不会打印(urlRssname)或下面的任何代码。
完整的错误代码
Traceback (most recent call last):
File "C:/Users/client.py", line 135, in <module>
main()
File "C:/Users/cleint.py", line 41, in main
my_socket.connect((urlRssname, server_port))
socket.gaierror: [Errno 11001] getaddrinfo failed