python - 如何从image_URL下载图像并计算python中的重复次数?
问题描述
我有一个包含 imageid、imageurl 的数据集。我需要使用图像 url 提取所有图像并将它们压缩到一个文件中,并下载所有图像。而且我需要计算重复次数,因为某些图像 url 重复了几次。我如何在python中做到这一点?
我想的方法是在这里使用 for 循环: image_id 应该是文件名
编辑1:添加了代码,我如何结合两个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:csv文件
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 和 simple_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 库的更多示例:https ://github.com/yiyedata/simplified-scrapy-demo/tree/master/
推荐阅读
- javascript - 插入随机时间
- html - 移动设备上错误/不同的背景图像大小
- python - 为什么 cross_val_score 返回所有 NaN?
- python - 从 icalendar 事件中提取日期
- redux - 如何在另一个 Redux 应用程序中包含 React-Admin
- r - 在 R Highcharter Map 中同时使用 hc_motion 和 hc_drilldown
- node.js - Docker 构建中的“ENOENT:没有这样的文件或目录”错误
- php - 错误:php artisan db:seed Illuminate\Database\QueryException SQLSTATE[HY000]:一般错误:1364 字段“数量”没有默认值
- python - 无法从下拉菜单中单击的元素
- ionic-framework - Ionic 5 目录树动态