以下是示例: 我试图抓取一系列XML页面,然后从中提取数据。
它下载每个单独的页面,因为while循环是设计用的,但是tester()函数从它下载的第一个文件打印数据V次,尽管它在每次循环后下载和清除文件。
这是在扼杀我,我做错了什么?
def tester():
with open('raw.txt') as myFile:
test = linecache.getline('raw.txt', 12)
print test
test = ""
myFile.close
def grab_data(Year, rcvote):
link = "XXX/%s/roll%s.xml" % (Year, rc)
site = urllib2.urlopen(link)
localFile = open('raw.txt', 'w')
localFile.write(site.read(100000))
localFile.close()
tester()
while (V !=0):
rc = str(V)
if (len(rc) == 2):
rc = "0%s" % (rc)
elif (len(rc) == 1):
rc = "00%s" % (rc)
else:
rc = rc
grab_data(Year, rc)
V = V - 1
答案 0 :(得分:3)
问题是linecache模块。它假定同名文件是相同的。
但是为什么要将数据写入文件只是为了再次读取它?
def tester(text):
line12 = text.splitlines()[11]
print line12
def grab_data(year, rcvote):
link = "XXX/%s/roll%03d.xml" % (year, rcvote)
site = urllib2.urlopen(link)
tester(site.read(100000))
while v:
grab_data(year, rc)
v -= 1