该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#coding=utf-8

import os

import requests

from lxml import etree

import time

class MieZiTu(object):

"""爬取妹子图的整站图片"""

def __init__(self):

#从这里开始

self.url = 'http://www.mzitu.com/all/'

#请求头一定要加上referer证明你是从那里来的,否则抓取不到图片

self.headers = {

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3088.3 Safari/537.36",

"Referer":"http://www.mzitu.com/all/",

}

def get_url_all(self):

"""获取所有的大类url"""

start = time.time()

url_all_resp = requests.get(self.url,self.headers)

url_all_html = etree.HTML(url_all_resp.text)

url_all_list = url_all_html.xpath('//div[@class="all"]//ul/li/p[2]/a/@href')

end = time.time()

#计算时间

self.t1 = end-start

print '获取所有的大类url完成,耗时%f秒'%self.t1

#返回所有小类的url列表

return url_all_list

def get_page_url(self):

"""获取所有每页的url"""

start = time.time()

# 调用上一个方法,获取到返回结果,所有大类的列表all_list

all_list = self.get_url_all()

print '正在获取每页的url...'

#创建一个列表,来存放所有页面的url,每一个图片算一个页面

pageUrl_List = []

#遍历大类的url列表

for page_url in all_list:

#发送请求返回每个大类的页面

page_resp = requests.get(page_url,headers=self.headers)

#解析html进行xpath匹配

page_html = etree.HTML(page_resp.text)

#使用xpath获取到每个小类的页码url

page_url_list = page_html.xpath('//div[@class="pagenavi"]/a/@href')

#创建一个列表用来过滤页码

page_list = []

#遍历小类url分割每个url,然后把每个页吗url的最后一部分添加到列表

for page in page_url_list:

i = page.split('/')

page_list.append(i[-1])#取分割部分的最后一部分,即页码

#获取到每个页吗的最大页数

page_num = page_list[-2]

#循环拼接每个每一个小类的每一页的url,添加到列表中

for urlNum in range(1,int(page_num)+1):

Page_url = page_url+'/'+str(urlNum)

pageUrl_List.append(Page_url)

end = time.time()

self.t2 = end-start

print '获取所有页码的url完成,耗时%f秒'%self.t2

return pageUrl_List

def get_img_url(self):

"""获取每个页码图片的url"""

start = time.time()

PageUrlList = self.get_page_url()

num = 1

#遍历出每个页码的url,发送请求返回数据,xpath匹配出图片的url,下载到本地

for page_img_url in PageUrlList:

page_img_html = requests.get(page_img_url,headers=self.headers)

page_img_lxml = etree.HTML(page_img_html.text)

img_url = page_img_lxml.xpath('//div[@class="main-image"]//img/@src')

for url_img in img_url:

img_resp = requests.get(url_img,headers=self.headers)

os.chdir('/home/python/pytest/meizitu/img')

with open('妹子图'+str(num)+'.jpg','wb') as f:

f.write(img_resp.content)

f.close()

print '第%d妹子图写入完成...'%num

num+=1

end = time.time()

self.t3 = end-start

end_time = self.t1+self.t2+self.t3

print '全站图片写入完成,总耗时%f秒'%end_time

meizi = MieZiTu()

meizi.get_img_url()

python爬取妹子图片1_【爬虫】直接上干货-爬取妹子图整站图片相关推荐

  1. python爬虫爬妹子图_【爬虫】直接上干货-爬取妹子图整站图片

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #coding=utf-8 import os import requests from lxml import etree import time cl ...

  2. 【期末课设】python爬虫基础与可视化,使用python语言以及支持python语言的第三方技术实现爬虫功能,定向爬取网页的图片数据,并且实现批量自动命名分类下载。

    1.大作业的内容 本要求使用python语言以及支持python语言的第三方技术实现爬虫功能,定向爬取网页的图片数据,并且实现批量自动命名分类下载. 2.案例需求 要求采用虚拟浏览器等动态爬虫技术,完 ...

  3. 想要快速爬取整站图片?速进(附完整代码)

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  4. 【Python】从爬虫开始吧——爬取妹子图整站

    首先得解决环境和工具的问题 Python基础教程 Python3基础教程 大家也可以去慕课网看视频学习哦,关于选择Python2还是Python3的问题,上手的话还是直接选择3吧. 关于爬虫 爬虫就是 ...

  5. python怎么爬取豆瓣首页_Python3 爬虫(二) -- 爬取豆瓣首页图片

    ''' 批量下载豆瓣首页的图片 采用伪装浏览器的方式爬取豆瓣网站首页的图片,保存到指定路径文件夹下 ''' #导入所需的库 import urllib.request,socket,re,sys,os ...

  6. python爬取小说基本信息_Python爬虫零基础实例---爬取小说吧小说内容到本地

    Python爬虫实例--爬取百度贴吧小说 写在前面本篇文章是我在简书上写的第一篇技术文章,作为一个理科生,能把仅剩的一点文笔拿出来献丑已是不易,希望大家能在指教我的同时给予我一点点鼓励,谢谢. 一.介 ...

  7. python批量下载静态页面_爬虫实战之,爬取壁纸,批量下载

    一.前言 在开始写爬虫之前,我们先了解一下爬虫 首先,我们需要知道爬虫是什么,这里直接引用百度百科的定义 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按 ...

  8. python爬取bilibili弹幕_python爬虫:bilibili弹幕爬取+词云生成

    如果你懒得看下边的文字,我录了一个完整的教学视频在b站上. 我的B站教学:https://www.bilibili.com/video/av75377135?p=2 工作原理 b站是提供弹幕接口的,所 ...

  9. python3爬取视频原理_Python3爬虫实战:以爬取豆瓣电影为例

    爬虫又称为网页蜘蛛,是一种程序或脚本. 但重点在于,它能够按照一定的规则,自动获取网页信息. 爬虫的基本原理--通用框架 1.挑选种子URL: 2.讲这些URL放入带抓取的URL列队: 3.取出带抓取 ...

最新文章

  1. 如何使网站的右键失效
  2. perl中用warn进行调试
  3. 关于listen的第二个参数backlog的一些问答见解
  4. JZOJ 5286. 【NOIP2017提高A组模拟8.16】花花的森林
  5. c mysql批量添加数据类型_mybatis学习之路----mysql批量新增数据
  6. 82 个代码案例实践,带你学好 Python 机器学习
  7. JVM内存划分、Linux用户态、内核态简介
  8. Coding the Matrix Week 1 The vector 作业
  9. Linux之内核调试sysrq
  10. 如何让路由器摆脱安全困扰
  11. windows系统开机自动扫描硬盘的原因及解决方法
  12. 论文阅读|How Does Batch Normalizetion Help Optimization
  13. solr6.3与MySQL结合使用的简明教程一
  14. 1688api 图片搜索功能 item_search_img-按图搜索1688商品(拍立淘)
  15. 云计算网络基础架构的实践和演进
  16. java 依赖倒置_Java设计原则—依赖倒置原则(转)
  17. 当我们谈注册中心时我们谈什么
  18. CleanMyMac最新2020注册机
  19. java里readfile,readfile java例子
  20. 判断点线位置(结构)

热门文章

  1. 短视频搬运要如何做,需要哪些软件,可以去重上热门?
  2. 【爬虫学习笔记day11】1.9. 参考阅读:urllib:Handler处理器和自定义Opener+ProxyHandler处理器(代理设置)+cookiejar库 和 HTTPCookieProc
  3. imx6ull:uboot顶层Makefile分析
  4. QQ 等级全球第一的人找到了:小时候家里开网吧
  5. 用Python求素数
  6. 吴恩达--机器学习笔记(2022年课程第二周)
  7. Java对身份证信息打码隐藏
  8. 二、5.输入身份证号,输出此人的出生年月日。注意限制输入的身份证号只能为18位,第7位开始即为出生年月日
  9. libGDX游戏开发之打包游戏(十二)
  10. 国仁网络资讯:如何运营好小红书上直播间;超详细直播互动话术攻略教程。