Python 爬取斗图啦图片-阿里云开发者社区

开发者社区> 凌浩雨> 正文

Python 爬取斗图啦图片

简介: 斗图啦 requests BeautifulSoup4 代码 # -*- coding:utf-8 -*- # pip install requests 框架 import requests # pip install beautifulsoup4 框...
+关注继续查看

斗图啦

requests
BeautifulSoup4
代码
# -*- coding:utf-8 -*-
# pip install requests 框架
import requests
# pip install beautifulsoup4 框架
# pip install lxml 解析器
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 = 'E:\\img' + '\\' + sub_url.split('/')[-1]
            os.mkdir(path)
            try:
                self.get_img_url(sub_url)
            except:
                pass
            pass
        pass

    def get_img_url(self, url):
        data = requests.get(url, headers = self.headers)
        soup = BeautifulSoup(data.content, 'lxml')
        totals = soup.findAll('div', {'class': 'artile_des'})
        for one in totals:
            img = one.find('img')
            try:
                sub_url = img.get('src')
            except Exception as e:
                raise e
            finally:
                urls = sub_url
            try:
                self.get_img(urls)
            except:
                print urls
                pass
            pass
        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
        pass

    def create(self):
        for count in range(1,10):
            url = 'https://www.doutula.com/article/list/?page={}'.format(count)
            print 'download {} page'.format(count)
            self.get_url(url)
            pass
        pass

if __name__ == '__main__':
    doutu = doutuSpider()
    doutu.create()

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
来更快的Maven了,我的天,速度提升了8倍!(1)
更快的Maven来了,我的天,速度提升了8倍!(1)
43 0
MySql5.7数据优化,瞬间飞起
MySql5.7数据优化,瞬间飞起
5 0
JVM深入学习(二十三)-下一代垃圾回收器
下一代垃圾回收器以并发回收为目的,亚毫秒级的停顿时间为目标,极大的提高了垃圾回收的效率
9 0
阿里云飞天加速计划ecs服务器试用体验
关于阿里云飞天加速计划ecs服务器的试用体验
9 0
MQTT知识大全【科普贴】
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于客户端与服务器之间发布/订阅(publish/subscribe)模式的"轻量级"通讯协议。为了保证通讯的安全性和可靠性,该协议基于TCP/IP协议构建。由IBM在1999年发布,最初被用于石油管道传感器与卫星的通讯连接,2014年,它正式成为一个OASIS开放标准并得到了大量开源语言的支持。
9 0
python测试框架-pytest
python测试框架-pytest 一、pytest 介绍、运行、参数化和数据驱动、Fixture pytest安装与介绍 官网 : pip install -U pytest 查看版本号:pytest --version 为何选择pytest 兼容unittest 定制化插件开发 pycharm 配置github VSC--Git--Remotes... pycharm pytest 配置 settings--搜索pytest--Python integrated Tools--testing--选择pytest:根据黄色叹号fix安装pytest安装到环境
7 0
1.3w字,一文详解死锁!(3)
1.3w字,一文详解死锁!(3)
5 0
常量和变量_C语言简介|学习笔记
快速学习常量和变量_C语言简介
4 0
CPU高使用率排查
Java程序在实际生产过程中经常遇到所在服务器CPU使用率高的问题,那么应该如何排查问题的原因呢,本文大概描述一下排查方法,作为一个排查手册。
5 0
+关注
凌浩雨
毕业于贵州大学大数据与信息工程学院,目前是一名移动端工程师,就职于北京乾元大通信息技术有限责任公司。
398
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载