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

时间:2012-06-11 01:46:46

标签: python urllib2

我知道这可能听起来很荒谬,但是可以使用urllib2打开一个URL,这样只返回一定数量的行吗?

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

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

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

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

这有可能吗?

3 个答案:

答案 0 :(得分:3)

当然,您可以使用readline()代替read()

import urllib2

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

lines = ""
for x in range(10):
        lines += response.readline()

print(lines)

答案 1 :(得分:0)

您只需设置阈值并跳出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)

答案 2 :(得分:0)

一衬垫:

from itertools import islice

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