赞
踩
先上代码再做讲解
- # 编写程序实现快速下载照片并保存到相应的目录
- # 针对的网站主要是百度的图片
- # -*- coding:utf8 -*-
- import os
- import re
- from urllib import parse
- import requests
-
-
- class BaiduImageSpider:
- 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 = res.text
- print(html)
- # 正则解析
- pattern = re.compile('"hoverURL":"(.*?)"', re.S)
- img_link_list = pattern.findall(html)
- # 保存图片链接
- print(img_link_list)
- # 创建对应目录保存图片
- directory = 'D:/Python/Py_Scrapy/chap_2/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('下载成功')
-
- 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()
本次所写的程序主要是基于爬虫实现对网页照片的抓取 这里主要针对的网址是百度图片
基本步骤主要有
初始化相关信息
-
- def __init__(self):
- self.url = 'https://image.baidu.com/search/flip?tn=baiduimage&word={}'
- self.headers = {'User-Agent': 'Mozilla/4.0'}
'运行
发起网络响应 获取网页基本信息
解析网页 获取图片链接
这里将发起网络请求和解析网页获取图片链接都写在了get_html方法当中
-
- def get_image(self, url, word):
- # 使用requests获取响应对象
- res = requests.get(url, headers=self.headers)
- # 改变编码格式
- res.encoding = 'utf-8'
- # 获取网页
- html = res.text
- print(html)
- # 正则解析
- pattern = re.compile('"hoverURL":"(.*?)"', re.S)
- img_link_list = pattern.findall(html)
- # 保存图片链接
- print(img_link_list)
- # 创建对应目录保存图片
- directory = 'D:/Python/Py_Scrapy/chap_2/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
-
-
'运行
列表保存相关的图片链接 在通过format方法拼凑成图片文件
在对网页解析处理后 又单独书写了一个保存方法 来完成对图片的保存
-
- # 保存函数
- 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('下载成功')
-
注意:这里的图片文件的保存是二进制格式保存的
以上就是相关的函数处理过程 最后整合处理运行即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。