任俊达
Articles17
Tags9
Categories0
如何用python实现自动下载自己想要的图片?

如何用python实现自动下载自己想要的图片?

关于python爬虫的优点——支持模块多、代码简洁、开发效率高 ,是我们进行网络爬虫可以选取的好工具。对于一个个的爬取下载,势必会消耗我们大量的时间,使用Python爬虫就可以解决这个问题,即可以实现自动下载。本文向大家介绍python爬虫的实战练习之进行自动下载图片的爬取过程。

自动下载图片流程

  • 总结网址规律,以便根据网址访问网页;

  • 根据网址规律,循环爬取并返回网页;

  • 利用正则表达式提取并返回图片;

爬取案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# -*- coding:utf8 -*-
'''
功能介绍:
利用爬虫实现图片爬取,输入你想检索的图片调用百度图片api实现检索,并下载文件
'''
import requests
import re
from urllib import parse
import os

class BaiduImageSpider(object):
def __init__(self):
self.url = 'https://image.baidu.com/search/flip?tn=baiduimage&word={}'
self.headers = {'User-Agent': 'Mozilla/4.0'}

# 获取图片
def get_image(self, url, word):
# 使用 requests模块得到响应对象
res = requests.get(url, headers=self.headers)
# 更改编码格式
res.encoding = "utf-8"
# 得到html网页
html = res.text
print(html)
# 正则解析
pattern = re.compile('"hoverURL":"(.*?)"', re.S)
img_link_list = pattern.findall(html)
# 存储图片的url链接
print(img_link_list)
# 创建目录,用于保存图片
directory = 'D:/study_folder/download/{}/'.format(word)
# 如果目录不存在则创建,此方法常用
if not os.path.exists(directory):
os.makedirs(directory)

# 添加计数
i = 1
for img_link in img_link_list:
filename = '{}{}.jpg'.format(directory, i)
self.save_image(img_link, filename)
i += 1

# 下载图片
def save_image(self, img_link, filename):
html = requests.get(url=img_link, headers=self.headers).content
with open(filename, 'wb') as f:
f.write(html)
print(filename, '下载成功')

# 入口函数
def run(self):
word = input("您想要谁的照片:")
word_parse = parse.quote(word)
url = self.url.format(word_parse)
self.get_image(url, word)


if __name__ == '__main__':
spider = BaiduImageSpider()
spider.run()

以上就是使用Python爬虫实现自动下载图片的过程,为了解放我们的双手,大家赶快练习起来哦~学会以后还可以往更深层次学呢,爬虫可不止是只能自动下载图片哦!

Author:任俊达
Link:https://renjunda.ren/lxb/dcf0004f.html
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×