通过re、requests、urlib、BeautifulSoup、os模块实现从百度下载指定类别图片。包含代码逐行解析。
import re
# 进行http请求的第三方库
import requests
from urllib import error
# 解析HTML和XML文档的库
from bs4 import BeautifulSoup
import os
num = 0
numPi = 0
file = ''
List = []
def makefile(word):
file = word + '文件'
file_na = os.path.exists(file)
if file_na == 1:
print('该文件已存在,请重新输入')
file = input('请建立一个存储图片的文件夹,输入文件夹名称即可: ')
os.mkdir(file)
else:
os.mkdir(file)
return file
# 根据地址去查找 对应的图片的信息
# 获取网页中图片URL函数
# url是目标网页的URL,A是用来发送http请求的类,通常是Request对象
def Find(url, A):
global List # 保存信息的列表,保存获取图片的URL
t = 0 # 请求时间
i = 1 # 请求次数
s = 0 # 当前获取到的图片总数
while t = numPi:
return
if __name__ == '__main__': # 主函数入口
# 模拟浏览器 请求数据 伪装成浏览器向网页提取服务,有的网站识别出你是python就会拒绝
# 请求头是在发送http请求时,由客户端向服务器发送一些元数据,描述请求的特性和客户端的能力
# 请求头通常由浏览器自动设置,也可由程序(python)脚本手动设置
# 返回的文档语言,客户端和服务端建立一个持久的连接,客户端的身份,客户端是否愿意升级不安全的请求
headers = {
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Connection': 'keep-alive',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Ge服务器托管网cko/20100101 Firefox/60.0',
服务器托管网 'Upgrade-Insecure-Requests': '1'
}
# 创建一个请求的会话
A = requests.Session()
# 设置头部信息
A.headers = headers
choice = int(input("请问需要搜索多类图片还是单类图片?如果是单类请输入0,如果是多类请输入1:"))
if choice == int(0):
word = input("输入要搜索的关键词:")
numPi = int(input('输入要下载的数量:'))
# 拼接路径
url = 'https://image.baidu.com/search/flip?ct=201326592&cl=2&st=-1&lm=-1&nc=1&ie=utf-8&tn=baiduimage&ipn=r&rps=1&pv=&fm=rs1&word=' + word
# 根据路径去查找
total = Find(url, A)
# 记录相关推荐图片
Recommend = recommend(url)
print('经过检测%s类图片共有%d张' % (word, total))
file = makefile(word)
t = 0
tmp = url
while t
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 【Azure Key Vault】在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式
问题描述 在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式? 问题解答 方式一: 在Databricks的Notebook 中,直接编写Python代码读取Key Vault的Secret 实例代码…