Google画像検索で複数のURLから画像をダウンロードしようとしています。
ただし、各URLから15枚の画像のみが必要です。
class imageSpider(BaseSpider):
name = "image"
start_urls = [
'https://google.com/search?q=simpsons&tbm=isch'
'https://google.com/search?q=futurama&tbm=isch'
]
def parse(self,response):
hxs = HtmlXPathSelector(response)
items = []
images = hxs.select("//div[@id='ires']//div//a[@href]")
count = 0
for image in images:
count += 1
item = ImageItem()
image_url = image.select(".//img[@src]")[0].extract()
import urlparse
image_absolute_url = urlparse.urljoin(response.url, image_url.strip())
index = image_absolute_url.index("src")
changedUrl = image_absolute_url[index+5:len(image_absolute_url)-2]
item['image_urls'] = [changedUrl]
index1 = site['url'].index("search?q=")
index2 = site['url'].index("&tbm=isch")
imageName = site['url'][index1+9:index2]
download(changedUrl,imageName + str(count)+".png")
items.append(item)
if count == 15:
break
return items
ダウンロード機能は画像をダウンロードします(私はそのためのコードを持っています。それは問題ではありません)。
問題は、私が壊れたとき、それは最初のURLで停止し、次のURLに進むことは決してないということです。最初のURLに15枚の画像をダウンロードし、次に2番目のURLに15枚の画像をダウンロードさせるにはどうすればよいですか。すべてのグーグル画像ページに約1000枚の画像があり、それほど多くはしたくないので、私はブレークを使用しています。