我知道这可能听起来很荒谬,但是可以使用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>
这有可能吗?
答案 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))