我有一个python脚本,它接受一些网址的输入。我的脚本循环遍历每个URL并从每个页面打印出htmltext。网站是否会将此视为3个单独的GET请求,因此会对网站进行3次“点击”,还是会看到套接字连接,并将其视为“点击”到该页面?
我认为这是通过检查调试的第一个选项,如果是这样,是否可以从同一站点上的多个URL获取数据,但该站点只能将此视为“点击”到该站点?我可以利用keep-alive功能在urllib3中实现这一目标吗?
我的脚本如下:
for u in url:
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
req = urllib2.Request(u)
req.add_header('User-Agent','Mozilla/5.0')
print urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1)).open(req)
resp = opener.open(req)
htmltext = resp.read()
答案 0 :(得分:2)
网站会将此视为3个单独的GET请求,因此会对网站进行3次“点击”,还是会看到套接字连接并将其视为“点击”到该页面?
是的,即使您重用套接字连接,它仍然是3个不同的请求(通过一个套接字)。无论您使用了多少连接,服务器的访问日志都会显示3个请求。
重用连接的好处是创建一个新的TCP套接字并与服务器协商握手是一个相对昂贵的过程。有时可能需要花费更多时间来检索HTTP响应主体本身。通过重用连接,您可以在第一次请求后跳过该部分。