Python 打开URL时,是否可以限制使用urllib2返回的行数?

Python 打开URL时,是否可以限制使用urllib2返回的行数?,python,urllib2,Python,Urllib2,我知道这听起来可能很可笑,但是否可以使用urllib2打开一个URL,这样最多只能返回一组行 原因是为了减少加载时间,特别是对于我正在处理的非常大的页面。例如,这是我的页面: 1. <html> 2. <head> 3. <title>Hello!</title> 4. </head> 5. <body> 6. <p>Hi there.</p> 7. </body> 8.

我知道这听起来可能很可笑,但是否可以使用
urllib2
打开一个URL,这样最多只能返回一组行

原因是为了减少加载时间,特别是对于我正在处理的非常大的页面。例如,这是我的页面:

1. <html>
2.  <head>
3.   <title>Hello!</title>
4.  </head>
5.  <body>
6.   <p>Hi there.</p>
7.  </body>
8. </html>
1。
2.
3.你好
4.
5.
6.    你好

7. 8.
假设我打开我的页面,直到第5行,然后在阅读后打印,它会给我:

1. <html>
2.  <head>
3.   <title>Hello!</title>
4.  </head>
5.  <body>
1。
2.
3.你好
4.
5.

这可能吗?

当然可以,您可以使用
readline()
而不是
read()


您只需要设置阈值并中断readlines循环

import urllib2

req = urllib2.Request('http://www.python.org')
response = urllib2.urlopen(req)

read_until = 5    

lines = []
for line_number, line in enumerate(response.readlines()):
    if line_number >= read_until:
        break
    else:
        lines.append(line)
一艘班轮:

from itertools import islice

list(islice(urlopen("http://www.python.org"), 5))

实际上,我的意思是只打开页面直到某一行。@user1447941:那么你说打开一行是什么意思?@larsmans-我知道这听起来很愚蠢,但基本上只是从网站下载一定数量的行。@user1447941:你的意思是读到一行。这正是答案所要做的。所以你只想让你的程序接收一定数量的HTTP响应行,然后呢?在那之后停止接收响应?除非你想得到相当低的水平,我认为你会,在某种程度上,收到整个响应时,你提出的要求;这个答案只是控制你处理的信息量。我建议尝试这样做,因为中止接收与HTTP响应相关的数据可能需要深入套接字/SSL层并进行处理,我怀疑您是否愿意这样做。
NameError:name'urlopen'未定义。
@user1447941:
来自urllib2 import urlopen
from itertools import islice

list(islice(urlopen("http://www.python.org"), 5))