当前位置:   article > 正文

Python抓取网络照片_spider = baiduimagespider()

spider = baiduimagespider()

先上代码再做讲解

  1. # 编写程序实现快速下载照片并保存到相应的目录
  2. # 针对的网站主要是百度的图片
  3. # -*- coding:utf8 -*-
  4. import os
  5. import re
  6. from urllib import parse
  7. import requests
  8. class BaiduImageSpider:
  9. def __init__(self):
  10. self.url = 'https://image.baidu.com/search/flip?tn=baiduimage&word={}'
  11. self.headers = {'User-Agent': 'Mozilla/4.0'}
  12. def get_image(self, url, word):
  13. # 使用requests获取响应对象
  14. res = requests.get(url, headers=self.headers)
  15. # 改变编码格式
  16. res.encoding = 'utf-8'
  17. # 获取网页
  18. html = res.text
  19. print(html)
  20. # 正则解析
  21. pattern = re.compile('"hoverURL":"(.*?)"', re.S)
  22. img_link_list = pattern.findall(html)
  23. # 保存图片链接
  24. print(img_link_list)
  25. # 创建对应目录保存图片
  26. directory = 'D:/Python/Py_Scrapy/chap_2/image/{}/'.format(word)
  27. # 如果目录不在则创建
  28. if not os.path.exists(directory):
  29. os.makedirs(directory)
  30. # 计数添加
  31. i = 1
  32. for img_link in img_link_list:
  33. filename = '{}{}_{}.jpg'.format(directory, word, i)
  34. self.save_image(img_link, filename)
  35. i += 1
  36. # 保存函数
  37. def save_image(self, img_link, filename):
  38. html = requests.get(url=img_link, headers=self.headers).content
  39. with open(filename, 'wb') as f:
  40. f.write(html)
  41. print('下载成功')
  42. def run(self):
  43. word = input('您想要谁的照片')
  44. word_parse = parse.quote(word)
  45. url = self.url.format(word_parse)
  46. self.get_image(url, word)
  47. if __name__ == '__main__':
  48. spider = BaiduImageSpider()
  49. spider.run()

本次所写的程序主要是基于爬虫实现对网页照片的抓取 这里主要针对的网址是百度图片

基本步骤主要有 

初始化相关信息

  1. def __init__(self):
  2. self.url = 'https://image.baidu.com/search/flip?tn=baiduimage&word={}'
  3. self.headers = {'User-Agent': 'Mozilla/4.0'}
'
运行

发起网络响应 获取网页基本信息

解析网页 获取图片链接

这里将发起网络请求和解析网页获取图片链接都写在了get_html方法当中

  1. def get_image(self, url, word):
  2. # 使用requests获取响应对象
  3. res = requests.get(url, headers=self.headers)
  4. # 改变编码格式
  5. res.encoding = 'utf-8'
  6. # 获取网页
  7. html = res.text
  8. print(html)
  9. # 正则解析
  10. pattern = re.compile('"hoverURL":"(.*?)"', re.S)
  11. img_link_list = pattern.findall(html)
  12. # 保存图片链接
  13. print(img_link_list)
  14. # 创建对应目录保存图片
  15. directory = 'D:/Python/Py_Scrapy/chap_2/image/{}/'.format(word)
  16. # 如果目录不在则创建
  17. if not os.path.exists(directory):
  18. os.makedirs(directory)
  19. # 计数添加
  20. i = 1
  21. for img_link in img_link_list:
  22. filename = '{}{}_{}.jpg'.format(directory, word, i)
  23. self.save_image(img_link, filename)
  24. i += 1
'
运行

列表保存相关的图片链接 在通过format方法拼凑成图片文件

在对网页解析处理后 又单独书写了一个保存方法 来完成对图片的保存

  1. # 保存函数
  2. def save_image(self, img_link, filename):
  3. html = requests.get(url=img_link, headers=self.headers).content
  4. with open(filename, 'wb') as f:
  5. f.write(html)
  6. print('下载成功')

注意:这里的图片文件的保存是二进制格式保存的

以上就是相关的函数处理过程 最后整合处理运行即可

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/796095
推荐阅读
相关标签
  

闽ICP备14008679号