深夜,我用python爬取了整个斗图网站,不服来斗

7758520lzy 7758520lzy     2022-12-24     443

关键词:

深夜,我用python爬取了整个斗图网站,不服来斗

QQ、微信斗图总是斗不过,索性直接来爬斗图网,我有整个网站的图,不服来斗。

废话不多说,选取的网站为斗图啦,我们先简单来看一下网站的结构

网页信息

技术图片

 

 

技术图片

从上面这张图我们可以看出,一页有多套图,这个时候我们就要想怎么把每一套图分开存放(后边具体解释)

通过分析,所有信息在页面中都可以拿到,我们就不考虑异步加载,那么要考虑的就是分页问题了,通过点击不同的页面,很容易看清楚分页规则

技术图片

很容易明白分页URL的构造,图片链接都在源码中,就不做具体说明了明白了这个之后就可以去写代码抓图片了

存图片的思路

因为要把每一套图存入一个文件夹中(os模块),文件夹的命名我就以每一套图的URL的最后的几位数字命名,然后文件从文件路径分隔出最后一个字段命名,具体看下边的截图。

技术图片

这些搞明白之后,接下来就是代码了(可以参考我的解析思路,只获取了30页作为测试)全部源码

# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
import os
class doutuSpider(object):
    headers = 
        "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
    def get_url(self,url):
        data = requests.get(url, headers=self.headers)
        soup = BeautifulSoup(data.content,‘lxml‘)
        totals = soup.findAll("a", "class": "list-group-item")
        for one in totals:
            sub_url = one.get(‘href‘)
            global path
            path = ‘J:\\train\\image‘+‘\\‘+sub_url.split(‘/‘)[-1]
            os.mkdir(path)
            try:
                self.get_img_url(sub_url)
            except:
                pass

    def get_img_url(self,url):
        data = requests.get(url,headers = self.headers)
        soup = BeautifulSoup(data.content, ‘lxml‘)
        totals = soup.find_all(‘div‘,‘class‘:‘artile_des‘)
        for one in totals:
            img = one.find(‘img‘)
            try:
                sub_url = img.get(‘src‘)
            except:
                pass
            finally:
                urls = ‘http:‘ + sub_url
            try:
                self.get_img(urls)
            except:
                pass
    def get_img(self,url):
        filename = url.split(‘/‘)[-1]
        global path
        img_path = path+‘\\‘+filename
        img = requests.get(url,headers=self.headers)
        try:
            with open(img_path,‘wb‘) as f:
                f.write(img.content)
        except:
            pass
    def create(self):
        for count in range(1, 31):
            url = ‘https://www.doutula.com/article/list/?page=‘.format(count)
            print ‘开始下载第页‘.format(count)
            self.get_url(url)
if __name__ == ‘__main__‘:
    doutu = doutuSpider()
    doutu.create()
复制代码

结果

技术图片技术图片技术图片

总结

总的来说,这个网站结构相对来说不是很复杂,大家可以参考一下,爬一些有趣的

我用python爬取了女神视界,爬虫之路永无止境「内附源码」(代码片段)

我发现抖音上很多小姐姐就拍个跳舞的视频就火了,大家是冲着舞蹈水平去的吗,都是冲着颜值身材去的,能刷到这篇文章的都是lsp了,我就跟大家不一样了,一个个刷太麻烦了,我直接爬下来看个够࿰... 查看详情

我用python爬取了五千张美女图壁纸,每天一张忘记初恋!(代码片段)

大家好,我是辣条,这是我爬虫系列的第26篇。爱美之心人皆有之,正所谓窈窕淑女君子好逑,美好敲代码的一天从好看的桌面壁纸开始,好看的桌面壁纸从美女壁纸开始。今天给大家带来福利啦,爬取美... 查看详情

我用python爬取了b站3948评论,围观最近超火的“杀疯了!这就是国家队的美貌吗?”评论区(代码片段)

技术上碾压对手颜值上惊艳对手中国奥运健儿们真是又美又能打!带你一看中国运动员颜值有多高需求分析网友们都在微博上说了啥?看这里▼之气那我们也有分析过B站的弹幕,有兴趣的小伙伴可以看看这里爬虫B站... 查看详情

python爬虫-基础入门-爬取整个网站《3》

python爬虫-基础入门-爬取整个网站《3》描述:  前两章粗略的讲述了python2、python3爬取整个网站,这章节简单的记录一下python2、python3的区别 python2.x使用类库:  >>urllib库  >>urllib2库 python3.x使用的类库: ... 查看详情

python爬虫-基础入门-爬取整个网站《1》(代码片段)

python爬虫-基础入门-爬取整个网站《1》描述:  使用环境:python2.7.15,开发工具:pycharm,现爬取一个网站页面(http://www.baidu.com)所有数据。python代码如下:1#-*-coding:utf-8-*-23importurllib245defbaiduNet():67request=urllib2.Request("http://www.b... 查看详情

python爬虫应用实战-如何爬取表情进行斗图?丰富你的表情库

面向对象python从设计开始就是一门面向对象的的语言,因此使用python创建一个类与对象是非常简单的一件事情。如果你以前没有接触过面向对象的编程语言,那么你需要了解一些面向对象语言的一些基本特征,接下来就来感受pyt... 查看详情

热血动漫番太好看了!用python爬取了1t的动漫,内存都爆了(代码片段)

...连,想起了我的班花,快点开学啊,阿西吧...Python爬虫-vip动漫采集效果展示爬取目标网站目标:樱花动漫工具使用 查看详情

python爬虫-26-批量爬取表情包,让你斗图再也不会陷入无图可发的窘境

...带着你解决这个问题。1、介绍平台:斗图啦语言:​​python​​技术:​​python​​​多线程、​​python​​​安全队列、​​python​​​之​​Xpath​​​、正则、​​request​​以上我们使用的技术,都是之前整理过的对不... 查看详情

我用python爬取微信好友,最后发现一个大秘密

前言你身处的环境是什么样,你就会成为什么样的人。现在人们日常生活基本上离不开微信,但微信不单单是一个即时通讯软件,微信更像是虚拟的现实世界。你所处的朋友圈是怎么样,慢慢你的思想也会变的怎么样。最近在学... 查看详情

我用python爬取微信好友,最后发现一个大秘密

 前言你身处的环境是什么样,你就会成为什么样的人。现在人们日常生活基本上离不开微信,但微信不单单是一个即时通讯软件,微信更像是虚拟的现实世界。你所处的朋友圈是怎么样,慢慢你的思想也会变的怎么样。最近... 查看详情

我用python爬取微信好友,最后发现一个大秘密

前言你身处的环境是什么样,你就会成为什么样的人。现在人们日常生活基本上离不开微信,但微信不单单是一个即时通讯软件,微信更像是虚拟的现实世界。你所处的朋友圈是怎么样,慢慢你的思想也会变的怎么样。最近在学... 查看详情

斗图斗不过小伙伴?python多线程爬取斗图网表情包,助你成为斗图帝!(代码片段)

最近python基础课讲到了多线程,老师让交个多线程的实例练习。于是来试试多线程爬虫,正好复习一下mooc上自学的嵩天男神的爬虫知识。想法很美好,过程却很心酸,从早上开始写,每次出现各种奇怪问题... 查看详情

朋友很喜欢打篮球,我用python爬取了1000张他喜欢的nba球星图片送给他内附源码(代码片段)

大家好,我是辣条。前言朋友快过生日了,不知道送啥礼物【绝对不是因为我抠】,想着他非常喜欢打篮球,篮球他很多个了,应该也不会缺【不会是因为篮球贵】,那我就用技术白嫖点东西送给他吧࿰... 查看详情

朋友很喜欢打篮球,我用python爬取了1000张他喜欢的nba球星图片送给他内附源码(代码片段)

大家好,我是辣条。前言朋友快过生日了,不知道送啥礼物【绝对不是因为我抠】,想着他非常喜欢打篮球,篮球他很多个了,应该也不会缺【不会是因为篮球贵】,那我就用技术白嫖点东西送给他吧࿰... 查看详情

聊天没有表情包被嘲讽,用python爬取了十万张表情包(代码片段)

前言事情要从几天前说起,我有一个朋友,他在和他喜欢的小姐姐聊天时,聊天的气氛一直非常尬,这时他就想发点表情包来缓和一下气氛,但一看自己的表情包收藏都是这样的。。。。。。这发过去,基... 查看详情

python爬虫应用实战-如何爬取表情进行斗图?丰富你的表情库

面向对象python从设计开始就是一门面向对象的的语言,因此使用python创建一个类与对象是非常简单的一件事情。如果你以前没有接触过面向对象的编程语言,那么你需要了解一些面向对象语言的一些基本特征,接下来就来感受pyt... 查看详情

聊天没有表情包被嘲讽,程序员直接用python爬取了十万张表情包(代码片段)

聊天没有表情包被嘲讽,程序员直接用python爬取了十万张表情包前言分析页面具体实现解析页面获取网页内容解析网页内容文件下载多线程下载成果总结前言事情要从几天前说起,我有一个朋友,他在和他喜欢的小姐... 查看详情

听说你想学python?不知道看什么书?我爬取了评分最实用的书籍!

Python很火,这点毋庸置疑,那么该如何入门呢?很多的小白都很迷茫,不知道该怎么下手,虽然小编很想给大家送纸质书,毕竟纸质书看起来有味道一些,但是小编还是比较穷,就送不起了,给大家数十本PDF书籍吧!私信小编007... 查看详情