Python利用requests模块下载图片实例代码
作者:傲娇的草履虫 发布时间:2023-11-18 16:10:13
标签:python,requests,下载
本文主要介绍的是关于Python利用requests模块下载图片的相关,下面话不多说了,来一起看看详细的介绍吧
MySQL中事先保存好爬取到的图片链接地址。
然后使用多线程把图片下载到本地。
示例代码:
# coding: utf-8
import MySQLdb
import requests
import os
import re
from threading import Thread
import datetime
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/63.0.3239.132 Safari/537.36'}
file_path = 'F:\\mlu2'
if not os.path.exists(file_path):
os.mkdir(file_path)
class Spider(object):
def __init__(self, file_path, header):
self.file_path = file_path
self.header = header
@staticmethod
def timer(func):
def time_count(*args):
start_time = datetime.datetime.now()
func(*args)
end_time = datetime.datetime.now()
day = (end_time - start_time).days
times = (end_time - start_time).seconds
hour = times / 3600
h = times % 3600
minute = h / 60
m = h % 60
second = m
print "爬取完成"
print "一共用时%s天%s时%s分%s秒" % (day, hour, minute, second)
return time_count
def get_link(self):
conn = MySQLdb.connect(host='localhost',
port=3306,
user='root',
passwd='729814',
db='mlu',
charset='utf8')
cur = conn.cursor()
sql = 'select image from msg limit 100' # image为事先爬取存到MySQL的图片链接地址
cur.execute(sql)
img_link = cur.fetchall()
return img_link
def download(self, link):
filename = re.findall(r'.*/(.+)', link)[0]
try:
pic = requests.get(link, headers=self.header)
if pic.status_code == 200:
with open(os.path.join(self.file_path)+os.sep+filename, 'wb') as fp:
fp.write(pic.content)
fp.close()
print "下载完成"
except Exception as e:
print e
@timer
def run_main(self):
threads = []
links = self.get_link()
for link in links:
img = str(link[0])
t = Thread(target=self.download, args=[img])
t.start()
threads.append(t)
for t in threads:
t.join()
spider = Spider(file_path, header)
spider.run_main()
来源:https://www.cnblogs.com/delav/p/9398825.html
0
投稿
猜你喜欢
- 我们以MNIST手写数字识别为例import numpy as npfrom keras.datasets import mnistfrom
- 最最简单的操作import numpy as npimport matplotlib.pyplot as pltfig = plt.figu
- 本文实例讲述了Python基于动态规划算法解决01背包问题。分享给大家供大家参考,具体如下:在01背包问题中,在选择是否要把一个物品加到背包
- tensorflow在1.4版本引入了keras,封装成库。现想将keras版本的GRU代码移植到TensorFlow中,看到TensorF
- 需求很简单比如我在做机器学习实验的时候,实验结果的保存路径是'runs/exp'。这样就会出现一个问题:当我第二次运行程序的
- 本文实例讲述了Python使用正则表达式过滤或替换HTML标签的方法。分享给大家供大家参考,具体如下:python正则表达式关键内容:pyt
- 爬取”顶点小说网“《纯阳剑尊》代码import requestsfrom bs4 import BeautifulSoup# 反爬heade
- 在需要使用到大批量数据的时候,即可以使用随机数据进行生成操作Faker的介绍Faker是python方向的一个第三方库,主要用来创造伪数据,
- 前言本文主要给大家介绍了关于Yii2结合Workerman的websocket的相关内容,两者都是好东西,我就想着能不能结合起来,这样Yii
- centos7之Python3.74安装安装版本:Python3.74系统版本:centos7系统默认安装Python2.7,保留。安装/u
- anaconda 集成了很多科学计算中所需要的包,如numpy,scipy等等,具体查看anaconda中已经预先安装配置好的包
- 这篇博客将介绍如何使用OpenCV和深度学习应用全面嵌套的边缘检测。并将对图像和视频流应用全面嵌套边缘检测,然后将结果与OpenCV的标准C
- 使用 Python 对数据进行更新操作对于 es 的更新的操作,不用到 Search() 方法,而是直接使用 es 的连接加上相应的函数来操
- 1、善用拖放技术 我们在使用Dreamweaver编辑网页的时候,经常需要插入一些图象什么的,假设要插入的图象很多,按照常规方法来操作就显得
- Crawler全名是DomCrawler,是Symfony框架的组件。令人发指的是DomCrawler的没有中文文档,Symfony也没有翻
- 语法:列表 list.pop(obj=list[-1])pop()用于删除并返回列表中的一个元素(默认为最后一个元素)obj:要删除并返回的
- 当代码已经写得差不多,发现某个变量名需要修改,但代码中很多地方都有该变量,一一修改太麻烦了,在不同的情景下,可以采取更加简便的方法,如下介绍
- 目的现有两幅栅格图像,一个是某地区道路栅格图,一个是某地区土地利用类型图,需要将道路叠加到土地利用类型图中,即叠加后,重合的像元值以道路图为
- 一、粗心导致的语法错误SyntaxError1、input输入报错age=input('请输入你的年龄:')if age&g
- 在使用pytorch作为深度学习的框架时,经常会遇到变量variable、张量tensor与矩阵numpy的类型的相互转化的问题,本章结合这