蟒读取的网站行源代码在时间100行(python read lines of website sou

2019-10-31 16:05发布

我试图在同一时间100线读取从网站的源代码

例如:

self.code = urllib.request.urlopen(uri)

#Get 100 first lines
self.lines = self.getLines()

...

#Get 100 next lines
self.lines = self.getLines()

我getLines代码是这样的:

def getLines(self):
    res = []
    i = 0

    while i < 100:
        res.append(str(self.code.readline()))
        i+=1

return res

但问题是, getLines()始终返回的前100行的代码。

我已经看到了一些解决方案next()tell()seek()但似乎这些功能都没有在类HTTPResponse类中实现。

Answer 1:

根据文档 urllib.request.urlopen(uri)返回类似对象的文件,所以你应该能够做到:

from itertools import islice

def getLines(self)
    res = []
    for line in islice(self.code,100): 
        res.append(line)
    return res

还有更多的信息islice中itertools文档 。 使用迭代器将避免while环和手动增量。

如果你绝对必须使用readline()这是建议使用for循环,即

for i in xrange(100): 
    ... 


Answer 2:

这为我工作。

#!/usr/bin/env python

import urllib

def getLines(code):
    res = []
    i = 0

    while i < 100:
        res.append(str(code.readline()))
        i+=1

    return res

uri='http://www.google.com/'
code = urllib.urlopen(uri)

#Get 100 first lines
lines = getLines(code)

print lines

#Get 100 next lines
lines = getLines(code)

print lines


文章来源: python read lines of website source code 100 lines at a time