/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:李晓凯
 * 完成日期:2019年 8 月 19 日
 * 版 本 号:v1.0
 *
 * 问题描述:
 * 输入描述:
 * 程序输出:

*/

用Python写一个爬虫,抓取网络上的图片。

在做的时候要把user-agent字段改为某些主流浏览器的本字段内容,来实现伪装成浏览器的效果,只需在浏览器任意页面右击—>检查可以查看到:

通过add_header('user-agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36')方法添加。

然后找到图片的地址:

和页数:

完整代码如下:

#爬虫爬取网址https://www.mzitu.com/zipai/上的图片
import urllib.request
import osdef url_open(url):req = urllib.request.Request(url)#添加头部,伪装Goole浏览器req.add_header('user-agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36')response = urllib.request.urlopen(req)html = response.read()return html
#得到页数
def get_page(url):html = url_open(url).decode('utf-8')a = html.find('page-numbers current') + 22 #+22是从字符‘p’到页数共偏移22个字符,下同b = html.find('<',a)return html[a:b]#得到图片地址
def find_imgs(url):html = url_open(url).decode('utf-8')img_addrs = []a = html.find('data-original=')while a != -1:b = html.find('.jpg',a,a+255)if b != -1:img_addrs.append(html[a+15:b+4])    #+15,+4同样是偏移字符的个数else:b = a + 22a = html.find('data-original=',b)#打印图片地址#for each in img_addrs:#    print(each)return img_addrs#保存图片
def save_imgs(folder,img_addrs):for each in img_addrs:filename = each.split('/')[-1]with open(filename,'wb') as f:img = url_open(each)f.write(img)def download_mm_img(folder,pages):os.mkdir(folder)os.chdir(folder)url = "https://www.mzitu.com/zipai/"page_num = int(get_page(url))for i in range(pages):page_num -=ipage_url = url + 'comment-page-' + str(page_num) + '/#comments'img_addrs = find_imgs(page_url)save_imgs(folder,img_addrs)print("抓取成功!")
if __name__ == '__main__':pages_num = input("请输入要抓取的图片页数:")pages_num = int(pages_num)file_name = input("请输入要保存的文件名称:")download_mm_img(file_name,pages_num)

运行结果如下:

这是抓取的部分图片:

Python——爬虫抓取图片相关推荐

  1. python爬虫抓取图片-简单的python爬虫教程:批量爬取图片

    python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程. ...

  2. python爬虫抓取图片-python网络爬虫源代码(可直接抓取图片)

    在开始制作爬虫前,我们应该做好前期准备工作,找到要爬的网站,然后查看它的源代码我们这次爬豆瓣美女网站,网址为:用到的工具:pycharm,这是它的图标 ...博文来自:zhang740000的博客 P ...

  3. python爬虫抓取图片-怎么用爬虫批量抓取网页中的图片?

    这个也有点简单了吧,之前观点网爬知乎的代码,直接给你上了: def download_img(url,classify): try: extention=get_extension(url) if(e ...

  4. [python爬虫] 爬取图片无法打开或已损坏的简单探讨

    本文主要针对python使用urlretrieve或urlopen下载百度.搜狗.googto(谷歌镜像)等图片时,出现"无法打开图片或已损坏"的问题,作者对它进行简单的探讨.同时 ...

  5. 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法

    这篇文章主要介绍了编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法,用到了Python的urllib和urllib2模块,需要的朋友可以参考下 抓取豆瓣电影TOP100 一.分析豆瓣top ...

  6. python爬虫爬取图片的简单步骤和实现代码

    目录 1. 如何获取网页信息 1). 直接从网络读取 2). 先将网页源码保存到本地,再读取 2. 分析获取到的网页信息,提取需要的信息(图片地址) 3. 使用request将图片保存到本地以及会碰到 ...

  7. python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...

    python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07

  8. python爬虫招聘-Python爬虫抓取智联招聘(基础版)

    原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...

  9. Python学习教程:Python爬虫抓取技术的门道

    Python学习教程:Python爬虫抓取技术的门道 web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单 ...

最新文章

  1. dojo Quick Start/dojo入门手册--json
  2. 本地打开extjs api docs 的方法
  3. 拓扑排序和关键路径课程设计
  4. m 文件 dll matlab 中调用_如何在matlab中调用python程序
  5. iOS模型输出和打印
  6. torch的DataLoader 浅析
  7. B树插入和删除的各种情况分析
  8. 为什么要对1000000007取模
  9. 判断DataTable为空,获取值,查询数据,datarow转datatable
  10. robo3t怎么插入数据_robo 3T(robomongo)在ubuntu16.04上安装记录
  11. python 实现复制文件夹以及文件夹下的子文件
  12. 【阿里在线技术峰会】魏鹏:基于Java容器的多应用部署技术实践
  13. 北京落户2020政策
  14. axurerp出现错误报告_Windows 应用程序无法安装 事件查看器报错
  15. 数据结构之你没见过的排序算法!
  16. 让C语言写图形库时不关闭控制台,GCC编译Win图形程序不显示控制台方法
  17. OpenCV cmake配置项BUILD_opencv_world的说明
  18. C/C++: “error: stray ‘\357’ in program“问题及其解决方法
  19. 提高 Maya 渲染质量和速度的4个小技巧
  20. 8Manage 助力平阳县交通运输局实现招标流程电子化管理

热门文章

  1. 用html做七巧板的方法,纯HTML5绘制的七巧板
  2. 使用 Hugo 和阿里云ECS搭建个人站
  3. 傅里叶变换的相关公式
  4. 浅谈windows 编程中SendMessage函数的妙用!!!
  5. LeetCode 2389. 和有限的最长子序列
  6. java基本数据类型各占多少字节,int和Integer区别
  7. 微生物组测序方法比较
  8. 网络安全基础——Linux基础
  9. 2016-HitCon-Pwn-house_of_orange学习(附赠FSOP基础知识)
  10. 伺服使能信号的作用与注意事项