Форум сайта python.su
0
Собственно суть такова: моя программа извлекает определенной число из определенного url, выводит его мне, потом берет след. url, извлекает оттуда число и т.д. В итоге получается такой своеобразный список чисел, с которыми непонятно что делать. Хотелось бы чтобы после прохода по циклу она добавляла число в массив, чтобы массив к концу выполнения программы состоял из большого набора чисел(одномерный хотя-бы научиться). Вот сам код:
import urllib for J in xrange(803311230,803351000): url='http://www.vezetmne.ru/auctions/'+str(J) urllib.urlretrieve(url=url, filename='COD.html') infile = open('COD.html') lines = infile.readlines() for i in range(len(lines)): line = lines[i]# так короче if 'cbid=alterStep' in line: A = lines[i].strip() Raznost = A[24:28] .........(много других вычислений) print Raznost infile.close()
Буду очень благодарен!)
Офлайн
13
Не совсем понял чего вы хотите. Может этого?:
import urllib
import contextlib
for i in xrange(803311230, 803351000):
url='http://www.vezetmne.ru/auctions/'+str(i)
rasnost = []
with contextlib.closing(urllib.urlopen(ulr)) as inp:
for line in inp:
if 'cbid=alterStep' in line:
rasnost.append(line.strip()[24:28])
.........(много других вычислений)
print raznost
Отредактировано Ed (Июнь 7, 2012 09:43:36)
Офлайн
52
Почитайте учебник что ли. Или туториал.
>>> from time import time, sleep >>> timelist = [] >>> for _ in xrange(10): ... timelist.append(time()) ... sleep(1) ... >>> timelist [1339051363.754317, 1339051364.755389, 1339051365.756446, 1339051366.757503, 133 9051367.758563, 1339051368.759625, 1339051369.76044, 1339051370.761374, 13390513 71.762433, 1339051372.762765] >>> timelist = [time() for _ in xrange(10)] >>> timelist [1339051471.765869, 1339051471.765871, 1339051471.765872, 1339051471.765873, 133 9051471.765874, 1339051471.765876, 1339051471.765877, 1339051471.765878, 1339051 471.765879, 1339051471.76588]
Офлайн
0
EdПопробую объяснить немного конкретнее. Мне нужно получить один массив, в котором были бы все найденные rasnost. Например чтобы он выводил:
Не совсем понял чего вы хотите. Может этого?:import urllib
import contextlib
for i in xrange(803311230, 803351000):
url='http://www.vezetmne.ru/auctions/'+str(i)
rasnost = []
with contextlib.closing(urllib.urlopen(ulr)) as inp:
for line in inp:
if 'cbid=alterStep' in line:
rasnost.append(line.strip()[24:28])
.........(много других вычислений)
print raznost
>>> a array([ 0.25, 0.25, 0.25, 0.05, 0.5])
['0.25'] ['0.05'] ['0.25'] ['0.25']
Офлайн
568
Давай пример без urllib, а то непонятно что у тебя на входе, что на выходе.
Дай какие-то данные и скажи что нужно получить
Офлайн
0
FishHookВот смотри: моя программа анализирует аукционы: заходит на определенный лот, берет число, потом заходит на след. лот, берет еще одно число и т.д. Мне нужно чтобы эти числа сохранились в итоге в одном массиве.
Давай пример без urllib, а то непонятно что у тебя на входе, что на выходе.
Дай какие-то данные и скажи что нужно получить
import urllib import contextlib R = [] for i in xrange(10): A = "TYUIGIH" + str(i) R.append(A) R
Офлайн
568
DimazzzzzzFishHookВот смотри: моя программа анализирует аукционы: заходит на определенный лот, берет число, потом заходит на след. лот, берет еще одно число и т.д. Мне нужно чтобы эти числа сохранились в итоге в одном массиве.
Давай пример без urllib, а то непонятно что у тебя на входе, что на выходе.
Дай какие-то данные и скажи что нужно получить
Без url у меня все получается как-раз, я вот тестовую программу писал на создание массива, вот она работает нормально и выдает все, что нужно:Тоесть впринципе как это делать я понимаю, но когда начинаю вносить в свою программу - получается либо массивы, состоящие из 1-го элемента, либо только последний элемент….import urllib import contextlib R = [] for i in xrange(10): A = "TYUIGIH" + str(i) R.append(A) R
Raznost=[] for line in infile.readlines(): if 'cbid=alterStep' in line: A = lines[i].strip() Raznost + = A[24:28]
Офлайн
0
Сори, я не приложил новый код, добавляю либо вот так:
for J in xrange(803311230,803351000): url='http://www.vezetmne.ru/auctions/'+str(J) urllib.urlretrieve(url=url, filename='COD.html') infile = open('COD.html') lines = infile.readlines() for i in range(len(lines)): line = lines[i]# так короче R = [] if 'cbid=alterStep' in line: A = lines[i].strip() Raznost = A[24:28] R.append(Raznost) print R
for i in xrange(803311230, 803311630): url='http://www.vezetmne.ru/auctions/'+str(i) rasnost = [] with contextlib.closing(urllib.urlopen(url)) as inp: for line in inp: if 'cbid=alterStep' in line: rasnost.append(line.strip()[24:28]) print rasnost
['0.25'] ['0.05'] ['0.25'] ['0.25']
array([ 0.25, 0.05, 0.25, 0.25])
), руками не смогу в один массив перегнать
Офлайн
0
DimazzzzzzТак зачем на каждой итерации выводить массив? Вынесите print вне цикла
У меня более 1000 таких данных(ясен пень не 4 ), руками не смогу в один массив перегнать
Офлайн
0
если вывести print вне цикла, то в массив он внесет только последнее значение переменной(уже пробовал)
Офлайн