下载百度图片

本文最后更新于 2024年2月14日 上午

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
# -*- coding:utf8 -*-
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 = 'C:/Users/User/Desktop/image/{}/'.format(word)
# 如果目录不存在则创建,此方法常用
if not os.path.exists(directory):
os.makedirs(directory)

#添加计数
i = 1
for img_link in img_link_list:
filename = '{}{}_{}.jpg'.format(directory, word, 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()

注意:第28行的下载地址一定要修改成自己的地址,否则无法下载图片!
按照提示来输入就可以,输出一长串网址属正常现象。希望大佬们可以在评论区指点指点😊!
(评论时,可能会显示disqus加载失败,请开启VPN或代理重试)

(希望大佬们也能够指点一下如何不开代理或VPN使用disqus,我用的是hexo)


下载百度图片
http://charlesyangcoding.github.io/2024/02/07/下载百度图片/
作者
Charles
发布于
2024年2月7日
更新于
2024年2月14日
许可协议