最近看小甲鱼的课程,动手实战了一下,成功了还是很开心的。。
废话就不说了,直接上源码,(本人比较懒所以没有注释)

import urllib.request as ureq
import os
import timedef url_open(url):req = ureq.Request(url)req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0')req.add_header('Referer', url)response = ureq.urlopen(req)html = response.read()return htmldef get_pages(url):html = url_open(url).decode('utf-8')pages_nums = []a = html.find('data-original=')while a != -1:b = html.find("' width", a)if b != -1:pages_nums.append(html[a + 15:b])else:b = a + 15a = html.find('data-original=', b)return pages_numsdef find_imgs(url):html = url_open(url).decode('utf-8')a = html.find('src=')b = html.find('.jpg', a, a + 255)while b == -1:b = a + 5a = html.find('src=', b)b = html.find('.jpg', a, a + 255)img_addrs = html[a + 5:b + 4]return img_addrsdef save_img(img_addrs):filename = img_addrs.split('/')[-1]with open(filename, 'wb') as f:img = url_open(img_addrs)f.write(img)def maxnum(url, maxPageInd):html = url_open(url).decode('utf-8')a = html.find(maxPageInd)b = html.find('<span>', a - 10)num = html[b + 6:a]return int(num)def meizi():folder = input("请输入保存图包的文件夹名称:")try:os.mkdir(folder)except OSError:passos.chdir(folder)count = 0url = 'https://www.mzitu.com/'page_num = input("请输入你想要下载的页数:")print('开始获取页面信息...\n')page_nums = get_pages(url)img_addrs = []print('检测完毕,当前页面共有%d个图包,即将分别爬取...\n' % len(page_nums))for each in page_nums:count += 1temp = each.split("'")packnum = temp[0].split('/')[-1]name = packnum.split('_')[0]newfolder = temp[-1]page_url = url + namepage_url2 = page_url + '/2'maxPageInd = "</span></a><a href='" + page_url2 + "'><span>"every_maxnum = maxnum(page_url, maxPageInd)print('第%d个图包的总图片数为%d张...\n' % (count, every_maxnum))os.mkdir(newfolder)os.chdir(newfolder)for i in range(every_maxnum):page_url3 = page_url + '/' + str(i + 1)print("正在获取第%d张图片地址..." % int(i+1))img_addrs = find_imgs(page_url3)save_img(img_addrs)os.chdir('..')print("等待5秒后,开始爬取下一个图包。")time.sleep(5)if __name__ == '__main__':meizi()

学习札记之python:一只黄色的小爬虫相关推荐

  1. python 人生的第一个小爬虫 爬小说 保存一下

    # -*- coding:UTF-8 -*- from urllib import request from bs4 import BeautifulSoup import chardet impor ...

  2. python搞笑动态图_python小爬虫抓取搞笑图片

    大部分小程序都是基于py2.7的,我于是便想直接出一个py3.4最新版本的教程.大致看一下第一篇了解一下的一些概念性的东西以及bs4第三方库的使用.请参考文末. 我们的第一个小程序的相关要求: 目标: ...

  3. Python日记——柿子要捡软的捏,记第一只小爬虫

    2017.12.19 阅读了<零基础入门学习Python>一书第14章"论一只爬虫的自我修养"之后总想跃跃欲试实现一只自己的小爬虫,但可惜的是,或许因为这本书的读者太多 ...

  4. python constructor_Python学习札记(2)——搭建Boa-constructor

    一.Boa-constructor是什么 看看来自己百度的解释:Boa Constructor是一个跨平台的Python集成开发环境和wxPython图形用户界面构建器.它提供了可视化方式的框架(窗口 ...

  5. Python入门学习札记

    Python入门学习札记 学习课程:风变编程 - Python入门 https://www.pypypy.cn/ 1.输入数组,判断结果 print('输入学生的成绩,每个成绩以,键隔开\n') ar ...

  6. 《深度学习入门--基于python的理论与实现》——斋藤康毅读书笔记

    <深度学习入门--基于python的理论与实现>读书笔记(第二章) 写在前面 第二章:感知机 2.1感知机是什么 2.2简单的逻辑电路 2.2.1与门(and gate) 2.2.2与非门 ...

  7. python学习一(python与pip工具下载与安装)

    python学习一(python与pip工具下载与安装)  一 Python下载  二 安装Python  三 安装 pip   3.1 采用cd命令进入到Scripts 目录下面   3.2 输入命 ...

  8. python学到什么程度可以写爬虫-刚开始学习 Python 到可以写出一个爬虫大约需要多长时间...

    学习 Python 的三种境界 前言王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:"昨夜西风凋碧树,独上高楼,望尽天涯路'. ...

  9. 学python需要多久-刚开始学习 Python 到可以写出一个爬虫大约需要多长时间

    学习 Python 的三种境界 前言王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:"昨夜西风凋碧树,独上高楼,望尽天涯路'. ...

最新文章

  1. 实验LVS+keepalived
  2. 测试用例设计方法-错误推测法
  3. php获取文件名称和扩展名
  4. jquery学习手记(5)对象
  5. Oracle之索引和索引碎片问题解决
  6. cobbler网络装机
  7. 神奇的pdfkit工具——将字符串保存为pdf文件
  8. unordered_map使用自定义enum作为键值
  9. Linux设备驱动程序学习-Linux设备模型(总线、设备、驱动程序和类)
  10. UVA 12898 - And Or 与和或 (思路题)
  11. html 文字如何和阴影齐平,求助!Html Div齐平无效
  12. java上路系列之一
  13. 天涯明月刀罗技鼠标自由弹奏脚本
  14. PDF太大怎么办?缩小PDF的4种常用方法
  15. 在VM虚拟机上装“黑苹果
  16. Android的屏幕多样性支持
  17. 2022-2028年中国工业互联网预测性维护(PdM)行业市场调查及未来前景预测报告
  18. 2023王道数据结构P40题二.1,关于是否会断链的问题
  19. Andy’s First Dictionary(安迪的第一部词典)
  20. tilemap 导入unity_Unity3D中Isometric Tilemap功能实践

热门文章

  1. 什么是训练集、验证集和测试集?
  2. 计算机主板的技术规格,电脑主板的主要参数有哪些?
  3. FineReport学习-【01 帆软报表入门】
  4. TA-Lib介绍以及使用
  5. python 识别拼多多,天猫,淘宝,京东域名
  6. Lessonnbsp;135nbsp;Thenbsp;latestnbsp;reportnbsp;最…
  7. 土豆案列(改了图片)
  8. csv格式转换成excel(CSV格式转换成dat文件出现乱码)
  9. 嘉立创EDA专业版--原理图器件检索查找
  10. Bresenham‘s line algorithm 布雷森汉姆直线算法