爬mei紫图最后代码2015-2019-1-14全部
共用时间4小时20分左右,文件4.36g,运行产生一个文档,用来记录不纯在的图片代码,把这些代码删减去,实际代码很短,因为过程比较无脑。
# -*- coding: utf-8 -*- """ Created on Mon Jan 14 18:23:10 2019@author: Administrator """import requests from bs4 import BeautifulSoup import re import time #import xlwt''' book = xlwt.Workbook(encoding='utf-8', style_compression=0)sheet = book.add_sheet('test', cell_overwrite_ok=True)sheet.write(0,0,link[-7:-4])book.save(r'e:\test1.xls') '''#url="https://www.mzitu.com/169451" my_referer = r'https://www.mzitu.com/169451'#为了获得图片链接,暂时不需要了,因为链接可以生成 ''' r=requests.get(url,headers={'referer':my_referer}) r.encoding=r.apparent_encoding html=r.content soup=BeautifulSoup(html,"html.parser") s=soup.select("div p a")[0].img["src"] '''#从链接总获得图片#s=soup.select(".article-content")#type(s[0]) #Out[18]: bs4.element.Tag#t=s[0].get_text()#f=open("d:/测试解析文档学习.html","w",encoding="utf-8") #f.write(str(s)) ''' a='https://i.meizitu.net/2019/01/13d'b="https://i.meizitu.net/2018/12/29d"c="https://i.meizitu.net/2017/01/01b" d="https://i.meizitu.net/2017/01/02b" ls=[] ls=[a,b,c,d] '''""" p1=["0"+str(i) for i in range(1,10)] #快速列表生成器 p1.append("10","11","12") """site="https://i.meizitu.net/" #2018 years=[site+str(i)+"/" for i in range(2015,2020)] #产生这几年#1-31天#p2=[chr(i) for i in range(97,123)] #百度python生成a-z# for j in p2:#经过分析大多数图片都是 https://i.meizitu.net/2018/12/28a01.jpg 末尾的字母主要是 a b c 所以,为了效率,节省点时间吧def nyr(year):p0=["0"+str(i) for i in range(1,10)]+[str(i) for i in range(10,13)] #月p1=["0"+str(i) for i in range(1,10)]+[str(i) for i in range(10,32)] #产生31天 url_day=[]for k in p0: for i in p1:url_day.append(year+k+'/'+i) #产生某一天return url_day #这样遍历的全年的不太好用,还不如老老实实爬某一个月的 """ p12="https://i.meizitu.net/2018/10/" url_Nov=[] for k in p1: for i in p2: url_Nov.append(p12+k+i)"""header = { "User-Agent": "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)", "Referer": r'https://www.mzitu.com/169451' } #headers={'referer':my_referer}def downloud(url):#p2015=["m","p","s","t","u","w","x","y"]p2015=[chr(i) for i in range(97,123)] for j in p2015:for i in range(1,60):if i<10:link=url+j+"0"+str(i)+".jpg"else:link=url+j+str(i)+".jpg"try:r1=requests.get(link,timeout=0.1,headers=header)r1.raise_for_status()html1=r1.content#ss=str(i)f=open("f:/爬虫生成文件/2015-/"+link[-17:-4].replace("/","")+".jpg","wb")f.write(html1)f.close()except:k=open("f:/爬虫生成文件/爬虫字母.txt","a",encoding="utf-8")k.write(link[-7:-4]+",")print("不存在:","{:^10}".format(link))#k.close()breakdef main():start_time=time.time()for j in range(len(years)):n=nyr(years[j])for i in range(len(n)):downloud(n[i])'''n=nyr(years[0])for i in range(len(n)):downloud(n[i])'''end_time=time.time()print("{:10}".format(end_time-start_time))main()"""def main():for i in url_Nov[:200]:downloud(i) """"""对空文件测试 x Out[107]: 'https://i.meizitu.net/2018/12/12o1'r1=requests.get(x,headers={'referer':my_referer})r1 Out[109]: <Response [404]>明白了这里必须要加上try except ,,raisefor status的原因了url[-11:].replace("/","") """
# -*- coding: utf-8 -*- """ Created on Mon Jan 14 18:23:10 2019 @author: Administrator """import requests from bs4 import BeautifulSoup import re import timedef nyr(year): #当给定第year年 产生year年的每一天p0=["0"+str(i) for i in range(1,10)]+[str(i) for i in range(10,13)] #月p1=["0"+str(i) for i in range(1,10)]+[str(i) for i in range(10,32)] #产生31天 url_day=[]for k in p0: for i in p1:url_day.append(year+k+'/'+i) return url_daydef downloud(url): #url是给定的某年某月某日 该函数遍历a00-a79 b00-b79....z00-z79 然后传入下一日p2=[chr(i) for i in range(97,123)] for j in p2: #26字母遍历for i in range(1,80): #查找80张图片(一般一张专辑最多也就50章),这个数目大没关系,不会降低速度,因为如果没有立刻就break了,不会继续查找if i<10: #因为都是两位数 比如3应该转化为03link=url+j+"0"+str(i)+".jpg"else:link=url+j+str(i)+".jpg"try: #下载图片r=requests.get(link,timeout=0.1,headers=header)r.raise_for_status()html=r.contentf=open("f:/爬虫生成文件/2015-/"+link[-17:-4].replace("/","")+".jpg","wb")f.write(html)f.close()except:print("不存在:","{:^10}".format(link))breakdef main():my_referer = r'https://www.mzitu.com/169451' site="https://i.meizitu.net/" header = {"User-Agent": "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)","Referer": r'https://www.mzitu.com/169451'} years=[site+str(i)+"/" for i in range(2015,2020)] start_time=time.time() for j in range(len(years)): #循环遍历每一年n=nyr(years[j])for i in range(len(n)): #循环遍历该年的每一天,从第0天开始 downloud(n[i])end_time=time.time()print("{:10}".format(end_time-start_time)) #计算总共用时间 main()
转载于:https://www.cnblogs.com/xinqidian/p/10276391.html
爬mei紫图最后代码2015-2019-1-14全部相关推荐
- 多线程爬取斗图表情包
和朋友在QQ上聊天感觉呀没有激情,突然,突发奇想,我写个小的爬虫 ,把表情包爬取下来随便挑,斗到他们吐血. 下面是爬取斗图的代码,代码可供参考 #encoding:utf8#模块import reim ...
- 23行代码带你爬取美女图
爬取妹子图可能在爬虫里面没有什么技术含量了,新手练练手还是可以的. 今天爬取的网址是:http://www.youzi4.cc/mm/meinv/index_1.html 注意:爬取图片一般要加上re ...
- 100行代码教你爬取斗图网(Python多线程队列)
100行代码教你爬取斗图网(Python多线程队列) 前言 根据之前写的两篇文章,想必大家对多线程和队列有了一个初步的了解,今天这篇文章就来实战一下,用多线程 + 队列 爬取斗图网的全网图片. 你还在 ...
- requests库(正则提取)爬取千图网
requests库(正则提取)爬取千图网 首先分析网页结构 打开千图网的网址搜索春节 打开网页源代码,发现跳转链接存在网页源代码里 接下来我们就利用正则表达式去提取 正则表达式最主要的就是找到你想要信 ...
- spider_爬取斗图啦所有表情包(图片保存)
"""爬取斗图吧里面的所有表情包 知识点总结: 一.使用requests库进行爬取,随机请求头(网站反爬措施少.挂个请求头足矣) 二.具体思路: 1.先爬取所有的图片ur ...
- python爬取千图网图片并保存_Python数据分析与挖掘实战-课程作业5爬取千图网某个频道的高清图片...
作业要求:爬取千图网(http://www.58pic.com)某个频道的高清图片 作业难点:正确找到图片链接并用正则表达式写出 代码如下: """ Created on ...
- 运用Python爬虫爬取一个美女网址,爬取美女图
运用Python爬虫爬取一个美女网址,爬取美女图 要运用到的python技术: 导入库 1.request 发送请求,从服务器获取数据 2.BeautifulSoup 用来解析整个网页的源代码 imp ...
- scrapy爬取斗图表情
用scrapy爬取斗图表情,其实呀,我是运用别人的博客写的,里面的东西改了改就好了,推存链接" http://www.cnblogs.com/jiaoyu121/p/6992587.html ...
- 使用python爬取斗图网的图片
使用python爬取斗图网的图片 以下是代码部分: # -*- coding: utf-8 -*- """ Created on Wed Apr 14 14:41:42 ...
最新文章
- GPS定位系统源码只有这种才是最适合做二次开发的...
- springboot + mybatis + gradle项目构建过程
- 计算机视觉基础-图像处理(边缘检测)cpp+python
- 在没有插件的情况下为Chrome设置Proxy
- 频率计的交流耦合和直流耦合的区别_直流电源与交流电源是什么?直流与交流之间的区别公司新闻...
- jQuery UI 应用不同Theme的办法
- springboot分页展示功能_基于SpringBoot从零构建博客网站 - 分页显示文章列表功能...
- 8.Docker技术入门与实战 --- 使用Dockerfile创建镜像
- DELL服务器装机网络问题
- Windows NT操作系统
- matlab中ode45如何设置,如何使用Matlab中的ode45修正赋值错误(ode45函数的第488行)
- Usability Engineering
- Coverage基础知识整理
- 你值得拥有的一份面试题
- POS机刷卡跨行交易的清算方式
- python停止线程_python线程之八:线程停止的3种方式,5个实例
- Remote Procedure Calls
- Crypto 学习第二天
- 点评阿里云盛大云代表的云计算IaaS产业
- 单片机常用的编程语言有哪些?怎样能快速提高编程水平?