python系列之爬虫:

同志们,上车了哈,,还没上车的快点,即将锁死车门!!!
此篇爬虫为,爬取各种妹子图
目标爬取网站
1.里面各种妹子,自己去看,这个网站是学习比较好的网站 ,因为里面有一些防爬机制,推荐下

本次环境:python3x
使用到的第三方模块:os模块,bs4模块,requests模块

大致思路讲解:首先,爬取总共有多少页,然后每一层一个for循环,找出所有的url,以及图片的链接,然后写入文件中,保存就完事了,
maxpage是我自己写的一个获取所有图片层数的类,可以简化代码,但是为了大家看的直观,就没有调用这个类了
源码里面都标注了,很清楚,大家自己用点心看吧,实在不懂就问。

源码如下:

from bs4 import BeautifulSoup
from learn.page_max import MaxPage
import requests
import random
import os#请求头:用来破解链接,不添加无法正常请求
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}# 此请求头Referer破解盗图链接,此请求头一定要,之前我没写,发现下载下来的图片都是盗图提升图。。。
Picreferer = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)','Referer': 'https://www.mzitu.com/'
}res = requests.get('https://www.mzitu.com/',headers= headers)
res.encoding='utf-8'#设置图片保存地址:
path = 'D:/mzt/'
#获取人物最大页数
soup = BeautifulSoup(res.text,'html.parser')
page=soup.select('.page-numbers')
# print(page)
max_page = page[-2].text
# print(max_page)
# max_page = MaxPage().max(url,headers)#获取每一mz的类型链接
print(soup.select('#menu-nav a')[1:])  #这里可以自己添加指定哪一类
dic={}
for i in soup.select('#menu-nav a')[1:]:#标题链接整合到列表中dic[i.text]= i['href']
# print(dic)
a=random.sample(dic.keys(),1)#获取字典中的一个key,是列表形式,所以需要提取其中的key,1表示获取的个数的参数值
# print(type(a)) 查看获取的a的类型
b=a[0]
# print(dic[b])# 选择随机获取类型的mz链接,并获取到这类妹子最大的页数
same_url = dic[b]
# same_url= 'https://www.mzitu.com/mm/'
res2= requests.get(same_url,headers = headers)
soup = BeautifulSoup(res2.text,'html.parser')
page2 = soup.find_all('a',class_='page-numbers')
print(page2)
max_page2 = page2[-2].text
# max_page2 = MaxPage().max(dic[b],headers)
print(max_page2)for n in range(1,int(max_page2)+1):#拼接当前类层所有urlurl =same_url + str(n)# print(url)# 对每一层的url发起请求tier_html=requests.get(url,headers=headers)#获取该层级下妹子标题,作为文件名称soup = BeautifulSoup(tier_html.text,'html.parser')all_a = soup.find('ul',id='pins').find_all('a', target='_blank')# print(all_a)#遍历标题for a in  all_a:# print(a)title = a.textif title != '':print('准备爬取:'+title)#windows不能创建带?的目录,添加逻辑判断if (os.path.exists(path + title.strip().replace('?',''))):print('目录已经存在')flag = 1else :os.makedirs(path+title.strip().replace('?',''))flag = 0#切换到上一步创建的目录os.chdir(path+title.strip().replace('?',''))# 提取第一层每一个MM的url,并发起请求href = a['href']res3 = requests.get(href,headers= headers)soup = BeautifulSoup(res3.text,'html.parser')#提取第二层最大页数page2_max = 0# print(soup.select('.pagenavi'))for i in soup.select('.pagenavi'):page2_max=i.select('a')[-2].textif (flag == 1 and len(os.listdir(path+title.strip().replace('?', '')))>= int(page2_max)):print('已经保存完毕,跳过')continue#遍历第二层每张图的url,并保存图片for num in range(1,int(page2_max)+1):#拼接每张图片所在地址url2 = href+'/'+str(num)html = requests.get(url=url2,headers= headers)pic = BeautifulSoup(html.text,'html.parser')picture = pic.select('img')[0]print(picture['src'])html_pic = requests.get(picture['src'],headers= Picreferer)#访问图片#提取图片名字picture_name = picture['src'].split('/')[-1]f = open(picture_name,'wb')f.write(html_pic.content)f.close()print('完成')print('第', n ,'页完成')

最后爬取截图:

python爬虫福利学习相关推荐

  1. Python爬虫入门学习例子之煎蛋网(福利哦)

    初学Python爬虫,学习资料是这篇博客:Python爬虫入门教程 经过前边两个例子(糗事百科爬虫和百度贴吧爬虫)的学习,我自己写了一个练习的例子:爬煎蛋网的妹子图,福利哦(*^__^*) #煎蛋网爬 ...

  2. python自学免费课堂-推荐5个Python爬虫免费学习资源(B站高赞!)

    这里是法学院毕业的Python程序员阿峰. 写在前面: 和学任何技能一样,学习Python爬虫也需要两点:行动和时间. 所有的爬虫速成课,我都不推荐. 如果您愿意付出时间和行动,每天在Python上进 ...

  3. 无敌python爬虫教程学习笔记(一)

    python爬虫系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 本文目录 ...

  4. 无敌python爬虫教程学习笔记(二)

    系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 手刃一个小爬虫 系列文章目 ...

  5. Day2:python爬虫基础学习(大嘘)

    Day2:python爬虫基础学习(大嘘)) 教材&参考: 学习过程 Sublime配置教程 下载&安装 语言(设置中文) 设置字体/配色 配置Python环境 使用python官方编 ...

  6. Python爬虫入门学习实战项目(一)

    静态数据的采集 第一个项目我们来抓取拉勾网的招聘信息,话不多说直接开始吧! 1.首先我们导入相关库: import requests from lxml import etree import pan ...

  7. 提供三块Python爬虫代码学习

    提供三块Python爬虫代码学习 爬取内涵段子 #encoding=utf-8 import urllib2import reclass neihanba():def spider(self):''' ...

  8. 慕课网python零基础入门教程_零基础Python爬虫入门学习一之综述

    原标题:零基础Python爬虫入门学习一之综述 大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章 ...

  9. Python爬虫福利:带你爬取妹子图上的美女图片,学习改变生活

    学习python爬虫,总得实战演练一下才能真正有所收获.今天我们就来用python爬虫爬取妹子图,哇~全是美女哦!那么,我们步入正题吧! 看完这篇文章,你将会用python爬虫做到这样: 首先我们打开 ...

最新文章

  1. 基于交换技术的网络中,全双工主要运行在?( 内有答案与详解)
  2. jenkins同平台发布
  3. python篮球-基于Python/Java的人工智能篮球训练系统的制作方法
  4. c语言中go的作用,go语言与c语言的相互调用
  5. 45-机器设计问题(深搜)
  6. Jenkins进阶系列之——08Jenkins纳入版本控制
  7. Bailian4033 铺地毯【暴力】
  8. UVA11413 Fill the Containers【二分搜索】
  9. 第27章 正则表达式
  10. Unity3D:UDPSocket通信模块
  11. 部署Extmail邮件服务器教程——适用于小白
  12. The user specified as a definer (‘skip-grants user‘@‘skip-grants host‘) does not exist
  13. python压缩解压缩_Python实现压缩和解压缩ZIP文件的方法分析
  14. “被授权”泛滥 个人信息保护怎么管?
  15. 【原创】VBA学习笔记(6)VBE编辑器,VBA工程,各种窗口
  16. python刷网易云_Python脚本用于定时关闭网易云音乐PC客户端
  17. 【win10】win10下两个显示器不同桌面壁纸
  18. 可擦写光盘不能擦除和刻写_哪种更适合?三种可擦写刻录盘方案PK
  19. MathJax笔记-精简打印版
  20. 【软件安装】Rational Rose 2007 安装过程(含资源)

热门文章

  1. 自建一个本地dns归属地查询系统
  2. 深天马A:正在筹划非公开发行股票事项
  3. 爬取得猫眼电影前top100排行榜
  4. 【论文查询】如何查询论文被其他哪些文献引用过?超详细!!!
  5. Autodesk Revit 2022 三维建模软件中文版
  6. 牛奶可乐经济学之Q12:为什么公司宁愿奖励员工一辆免费的宝马汽车,而不是等值的现金?
  7. 远景举办首届综合能源服务合作发展论坛 智慧能源技术创见美好未来
  8. 利用ffmpeg把一帧原始视频数据转换成jpg格式的图片
  9. 国内CDN行业优质服务商
  10. 78、基于STM32单片机学习型搬运机器人四自由度机械臂机械手遥感控制设计