代码如下:
import socket, ssl
HOST = 'www.bilibili.com'
sock = socket.socket()
sock = ssl.wrap_socket(sock)
sock.connect((HOST, 443))
request = f'GET / HTTP/1.1\r\nHOST: {HOST}\r\nConnection: close\r\n\r\n'
sock.send(request.encode())
SIZE = 8192
buffer = []
while True:
print(sock)
data = sock.recv(SIZE)
if not data:
break
buffer.append(data)
data = b''.join(buffer)
sock.close()
data = data.split(b'\r\n\r\n', 1)[1]
print(data.decode())
GET 请求 B 站首页,返回的数据有时能正常解码为 UTF8,有时又会解码到一半报错提示无法解码,报错时我试着先把字节存到一个文件,然后按 UTF8 只解码前面的部分,可以正常解码。 代码跑多几遍就会出现(手动跑个 5、6 遍,应该跟反爬虫没关联吧),访问豆瓣 TOP250 电影( https://movie.douban.com/top250 )页面也会出现这个情况,豆瓣触发次数得跑多几遍,而且是固定位置报错,这个感觉很诡异,固定位置也不可能是传输数据丢了吧?这个问题困扰了我好几天了,望各位不吝赐教。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.