文档章节

python妹子图爬虫5千张高清大图突破防盗链福利5千张福利高清大图

o
 osc_gu9d45li
发布于 2019/04/06 11:45
字数 687
阅读 91
收藏 0

精选30+云产品,助力企业轻松上云!>>>

meizitu-spider

python通用爬虫-绕过防盗链爬取妹子图

这是一只小巧方便,强大的爬虫,由python编写

所需的库有

    1. requests
    1. BeautifulSoup
    1. os
    1. lxml

伪装成chrome浏览器,并加上referer请求头访问服务器不会被拒绝。

完整项目放在GitHub:https://github.com/Ymy214/meizitu-spider

具体实现思路:

    1. 分析网页源代码结构
    1. 找到合适的入口
    1. 循环爬取并去重加到循环队列
    1. 基本上实现了爬取所有图片

代码思路/程序流程:

我通过观察发现meizitu网站的分布结构虽然找不到切入口但是其结构每一个页面都会展示一个main-image主图,并且页面下面都会有推荐这个板块,所以就i昂到了利用从一个页面当作入口,利用beautifulsoup或者pyquery分析HTML页面提取出推荐的其他页面,添加到循环访问队列,整体程序最外蹭利用while循环控制结构,循环不重复地遍历队列里面的url页面,每个页面都只保存一个作为展示的主图这样就循环下去程序不停歇地运行也可以放到服务器上面爬取,顺便上传到网盘分享给广大--你懂的

下面是功能以及效果展示

整体展示

爬取效果展示-丰功伟绩

爬取效果展示-硕果累累

定制请求头

代码展示

python源代码如下


#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import requests
from bs4 import BeautifulSoup

# 定制请求头
headers = {'Referer':'https://www.mzitu.com','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3679.0 Safari/537.36'}

path = 'R:/python123全国等考/meizitu/'
meizi_url = []
meizitu_img = []

start_url = 'https://www.mzitu.com/177007'
meizi_url.append(start_url)
r = requests.get(start_url)
soup = BeautifulSoup(r.text)
main_img = soup.find('div', 'main-image').img.get('src')
meizitu_img.append(main_img)

guess_like = soup.find('dl', 'widgets_like').find_all('a')
for a in guess_like:
    meizi_url.append(a.get('href'))
# 删除起始引导url
# del meizi_url[0]

# print(meizi_url)
# print(meizitu_img)
with open("R:/python123全国等考/meizitu/meizi-main-jpg.txt", "w") as fo:
    x = 1
    y = 1
    for node_url in meizi_url:
        r = requests.get(node_url)
        soup = BeautifulSoup(r.text)
        main_img = soup.find('div', 'main-image').img.get('src')
        # 添加到文件日志并下载主图
        if main_img not in meizitu_img:
            x += 1
            meizitu_img.append(main_img)
            # 写入日志
            fo.write(main_img+'\n')
            # 下载主图
            res = requests.get(main_img, headers=headers)
            if res.status_code == 200:
                with open(path+str(x)+'-'+str(y)+'.jpg', 'wb') as f:
                    f.write(res.content)
                    print('成功保存图片')  
        # 猜你喜欢,跳转其他页面
        guess_like = soup.find('dl', 'widgets_like').find_all('a')
        for a in guess_like:
            like = a.get('href')
            # 添加推荐页面
            if like not in meizi_url:
                y += 1
                meizi_url.append(like)



另外本人还有面下给小白的

    1. 王者荣耀皮肤高清大图
    1. 背景故事爬虫

欢迎学习支持

有用或帮到你的话不妨点个star我将感激不尽

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
python爬虫王者荣耀高清皮肤大图背景故事通用爬虫

wzry-spider python通用爬虫-通用爬虫爬取静态网页,面向小白 基本上纯python语法切片索引,少用到第三方爬虫网络库 这是一只小巧方便,强大的爬虫,由python编写 主要实现了: 1.爬取高清皮...

osc_gu9d45li
2019/04/06
10
0
20 M 的图片能压缩到 2 M?20行Python代码,无损压缩千百张图片

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 加企鹅群695185429即可免费获取,资料全在群文件里。资料可以...

其实还好啦
05/29
0
0
6年驾龄,用Python爬取高清妹子图!

写在前面 本司机在网页上看到一个图片网站,网站的尺度是这样的:^_^ 里面的美女美的不可描述啊,而且漏骨而不露点,可以说是宅男的福利了。 一时兴起,决定将网站上的图片打包下来研究研究。...

osc_m6qqd6pr
2019/01/15
25
0
老司机成人网-老司機成人網-LSJ-老司机视频-老司机自拍-老司机性息-老司机小说,新锐华语综合成人网站品牌

最新地址: https://8jy6.xyz https://3xth.com https://e8df.com 请及时收藏新地址或者地址发布页,以防地址被屏蔽,点击这里可以下载手机地址发布器和获得更多找到新地址的方法。 立即关闭...

2018/12/03
0
0
教程+资源,python scrapy实战爬取知乎最性感妹子的爆照合集(12G)!

一.出发点: 之前在知乎看到一位大牛(二胖)写的一篇文章:python爬取知乎最受欢迎的妹子(大概题目是这个,具体记不清了),但是这位二胖哥没有给出源码,而我也没用过python,正好顺便学一...

osc_nmvhliqx
2018/09/14
23
0

没有更多内容

加载失败,请刷新页面

加载更多

linux下java环境搭建

1、jdk下载: 官方地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 如下图所示,我这边选择的是红框中的版本 2、压缩包上传至服务器 将下载的压缩包上传...

wc_飞豆
23分钟前
17
0
面试题:Java对象不再使用时,为什么要赋值为null?

前言 许多Java开发者都曾听说过“不使用的对象应手动赋值为null“这句话,而且好多开发者一直信奉着这句话;问其原因,大都是回答“有利于GC更早回收内存,减少内存占用”,但再往深入问就回...

码农突围
25分钟前
22
0
设计模式(5) 原型模式

原型模式 原型模式的适用场景 浅拷贝 深拷贝 用Initialize方法修改初始化状态 原型模式与之前学习的各种工厂方法、单例模式、建造者模式最大、最直观的区别在于,它是从一个既有的对象“克隆...

zhixin9001
25分钟前
7
0
获取免费的pycharm激活码网站

http://www.lookdiv.com/

云烟成雨forever
25分钟前
27
0
用Helm部署Kubernetes应用,支持多环境部署与版本回滚

1 前言 Helm是优秀的基于Kubernetes的包管理器。利用Helm,可以快速安装常用的Kubernetes应用,可以针对同一个应用快速部署多套环境,还可以实现运维人员与开发人员的职责分离。现在让我们安...

南瓜慢说
27分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部