Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从图像URL下载图像并计算python中的重复次数?_Python_Python 3.x_Dataset - Fatal编程技术网

如何从图像URL下载图像并计算python中的重复次数?

如何从图像URL下载图像并计算python中的重复次数?,python,python-3.x,dataset,Python,Python 3.x,Dataset,我有一个包含imageid、imageurl的数据集。我需要使用图像URL提取所有图像,并将它们压缩到一个包含所有下载图像的文件中。我需要计算重复次数,因为一些图像url重复了好几次。如何在python中实现这一点 我想的方法是在这里使用for循环: image\u id应该是文件名 edit1:添加了代码,如何组合这两个for循环 import urllib list1 = [] for key1 in (csv_file['imageid']): list1 =

我有一个包含imageid、imageurl的数据集。我需要使用图像URL提取所有图像,并将它们压缩到一个包含所有下载图像的文件中。我需要计算重复次数,因为一些图像url重复了好几次。如何在python中实现这一点

我想的方法是在这里使用for循环: image\u id应该是文件名

edit1:添加了代码,如何组合这两个for循环

import urllib

list1 = []

    for key1 in (csv_file['imageid']):
        list1 = str(key1)+".jpg"
        for key in (csv_file['imageurl']):
           urllib.request.urlretrieve(key, list1)
编辑2:

Edit3:使用库时出错

unknown url type: '430'
430
2020-03-02 22:08:26 ('430',)
2020-03-02 22:08:26 (ValueError("unknown url type: '430'"), '430')
2020-03-02 22:08:26 ('error url:', {'url': '430', '_concurrency': 1, 
'_startTm': 1583167106.29, '_endTm': 1583167106.292}, None)

这就是我在使用此库时面临的错误

根据您提供的CSV文件,下面是一个示例。但是我建议你不要直接使用这个库,因为它很麻烦。您可以尝试使用其他打包的库,例如requests和simplified_scrapy

import csv
import urllib.request
# from simplified_scrapy import req, utils

list1 = []
with open('test.csv') as f:
  f_csv = csv.reader(f)
  list1 = set([row[1] for row in f_csv if row][1:]) 
for url in list1:
  urllib.request.urlretrieve(url, filename=url.split('/')[-1])
  # utils.saveResponseAsFile(req.get(url),url.split('/')[-1])
给你一个使用simplified_scrapy下载图片的例子

from simplified_scrapy import Spider, SimplifiedDoc, SimplifiedMain, utils
import csv
class ImageSpider(Spider):
  name = 'ImageSpider'
  def __init__(self):
    with open('test.csv')as f:
      f_csv = csv.reader(f)
      self.start_urls = [row[1] for row in f_csv if row][1:]
    Spider.__init__(self,self.name) # The framework will help you eliminate duplicate data

  def afterResponse(self, response, url, error=None, extra=None):
    try:
      # Create file name
      end = url.find('?') if url.find('?')>0 else len(url)
      name = 'data'+url[url.rindex('/',0,end):end]
      # Save img
      utils.saveResponseAsFile(response,name,'image')
      return None 
    except Exception as err:
      print (err)
SimplifiedMain.startThread(ImageSpider()) # Start

下面是SimplifiedDoc库的更多示例:

首先尝试编写代码,当您收到错误消息时返回。您似乎知道
urllib
module-因此,现在您必须学习模块和字典来计算元素。您能更清楚地告诉我吗?我还是个新手。我必须在哪里输入列名才能打开URL的?我必须在哪里输入我想要设置的文件名??您的URL存储在test.csv文件中。使用索引检索URL(第[1]行)。发布你的CSV文件的一部分,我会给你一个基于它的例子。imageid imageurl 18 100 19 100 20 100 21 100在这个问题上为CSV文件添加了一个链接。基本上必须实现一个集合来保存您提到的csv文件或库。