Мне кажется, что вы пытаетесь достичь чего-то подобного:
def batch_generator(image_paths, batch_size, isTraining):
your_code_here
Вызов генератора - вместо того, что у вас есть:
index = next(batch_generator(train_dataset, 10, True))
:
index = iter(batch_generator(train_dataset, 10, True))
index.__next__()
Используйте Красивый Суп. Выполнение его самостоятельно более трудно, чем это смотрит, Вы будете более обеспеченным использованием проверенного на практике модуля.
Править:
Я думаю, что Вы хотите:
soup = BeautifulSoup.BeautifulSoup(urllib.urlopen(url).read())
Между прочим, это - плохая идея попытаться открытие URL там, как будто это идет не так, как надо, это могло стать ужасным.
РЕДАКТИРОВАНИЕ 2:
Это должно показать Вам все ссылки на странице:
import urlparse, urllib
from BeautifulSoup import BeautifulSoup
url = "http://www.example.com/index.html"
source = urllib.urlopen(url).read()
soup = BeautifulSoup(source)
for item in soup.fetchall('a'):
try:
link = urlparse.urlparse(item['href'].lower())
except:
# Not a valid link
pass
else:
print link
Вот пример кода, показывая получение атрибутов и содержания ссылок:
soup = BeautifulSoup.BeautifulSoup(urllib.urlopen(url))
for link in soup.findAll('a'):
print link.attrs, link.contents
Похож на Вас, имеют две проблемы там:
Хотя я предполагаю, что другие могли бы быть корректными в указании на Вас к использованию Красивого Супа, они не могли бы, и пользование внешней библиотекой могло бы быть в широком масштабе чрезмерным в Ваших целях. Вот regex, который сделает то, что Вы спрашиваете.
/<a\s+[^>]*?href="([^"]*)".*?>(.*?)<\/a>/
Вот то, чему это соответствует:
'<a href="url" close="true">text</a>'
// Parts: "url", "text"
'<a href="url" close="true">text<span>something</span></a>'
// Parts: "url", "text<span>something</span>"
Если Вы хотели получить просто текст (например: "textsomething" во втором примере выше), я только что выполнил другой regex по нему для разделения чего-либо между угловыми скобками.