spider_爬取斗图啦所有表情包(图片保存)

"""爬取斗图吧里面的所有表情包

知识点总结: 一、使用requests库进行爬取,随机请求头(网站反爬措施少。挂个请求头足矣) 二、具体思路:               1.先爬取所有的图片url,放在列表里               2.循环遍历url请求这些图片,               3.将图片进行分类保存三、分类保存用到一个知识点,endwith(以***结尾)               使用这个函数,将jpg,gif,png等不同类型的图片分开四、演示案例中,只爬取了前20页。五、各个定义的数字变量意思为:               n=1     网页页数               num=1   保存图片数

注:该案例主要是练习    1.图片的保存,应注意,保存时使用字节流的形式。    2.书写爬虫代码的逻辑思维。"""from fake_useragent import FakeUserAgentimport requestsimport reimport timeimport randomdef getUrls():    # 将获取到的url列表在放到list这个列表里    url_list=[]    n=1    while True:        url = f"http://www.doutula.com/article/list/?page={n}"        headers = {            "User-Agent":FakeUserAgent().random        }        htmlStr = requests.get(url,headers=headers).text        # print(htmlStr)

        # 定义   提取图片url的正则        urls = r‘data-original="(.*?)"‘        # 编译        urls = re.compile(urls)        #正则提取        urls = re.findall(urls,htmlStr)        url_list.append(urls)        print("正在收集第%s页的图片"%n)        n = n + 1        # 设置延时        time.sleep(0.5)        # 当n=21的时候,爬虫程序停止.为了演示方便只保存前二十页其实共有615页        if n == 21:            break    print(len(url_list))    return url_list

# 保存图片# 以字节的形式将图片保存def download(url_list):    num = 1    for urls in url_list:        for url in urls:            header={                "User-Agent":FakeUserAgent().random            }            # 因为爬取到的图片有两种,所以写了一个判断条件,分类保存,            if url.endswith(‘.jpg‘):                # 保存到本地                with open(‘./img/%s.jpg‘%num,‘wb‘) as file:                    # 获取到图片  字节                    img = requests.get(url, headers=header)                    file.write(img.content)                    print("正在保存第%s张图片"%num)                    num += 1                    time.sleep(0.3)            elif url.endswith(‘.gif‘):                # 保存到本地                with open(‘./img/%s.gif‘ % num, ‘wb‘) as file:                    # 获取到图片  字节                    img = requests.get(url, headers=header)                    file.write(img.content)                    print("正在保存第%s张图片" % num)                    num += 1                    time.sleep(0.3)

if __name__ == ‘__main__‘:    url_list=getUrls()    download(url_list)

原文地址:https://www.cnblogs.com/YangQingHong/p/11006257.html

时间: 2024-11-01 23:48:21

spider_爬取斗图啦所有表情包(图片保存)的相关文章

【Python3 爬虫】U28_多线程爬取斗图啦的表情包

目录 1.需求描述 2.实战代码 2.1 单线程爬取 2.2 多线程版 1.需求描述 爬取斗图啦网站,地址为:https://www.doutula.com/photo/list/[Python3 爬虫]U28_多线程爬取斗图啦的表情包 原文地址:https://www.cnblogs.com/OliverQin/p/12636681.html

用Python多线程实现生产者消费者模式爬取斗图网的表情图片

什么是生产者消费者模式 某些模块负责生产数据,这些数据由其他模块来负责处理(此处的模块可能是:函数.线程.进程等).产生数据的模块称为生产者,而处理数据的模块称为消费者.在生产者与消费者之间的缓冲区称之为仓库.生产者负责往仓库运输商品,而消费者负责从仓库里取出商品,这就构成了生产者消费者模式. 生产者消费者模式的优点 解耦假设生产者和消费者分别是两个线程.如果让生产者直接调用消费者的某个方法,那么生产者对于消费者就会产生依赖(也就是耦合).如果未来消费者的代码发生变化,可能会影响到生产者的代码.

scrapy爬取斗图表情

用scrapy爬取斗图表情,其实呀,我是运用别人的博客写的,里面的东西改了改就好了,推存链接" http://www.cnblogs.com/jiaoyu121/p/6992587.html " 首先建立项目:scrapy startproject doutu 在scrapy框架里先写自己要爬取的是什么,在item里面写. import scrapyclass DoutuItem(scrapy.Item): # define the fields for your item here

python3爬虫 -----爬取斗图息-------www.doutula.com

普通爬取: 1 # -*- coding:utf-8 -*- 2 # author:zxy 3 # Date:2018-10-21 4 import requests 5 from lxml import etree 6 import re 7 import urllib 8 import os 9 import time 10 11 12 13 def parse_page(url): 14 headers={ 15 'User-Agent':'Mozilla/5.0 (Windows NT

爬取千图网上的高清图片

贴下源码 配置环境:python3.5  win10 import urllib.request import re#遍历其中端午节的海报网址页数 for i in range(1,10): pageurl="http://www.58pic.com/tupian/duanwujie-800-0-"+str(i)+".html" data=urllib.request.urlopen(pageurl).read().decode("utf-8",

Python 2.7_爬取妹子图网站单页测试图片_20170114

1.url= http://www.mzitu.com/74100/x,2为1到23的值 2.用到模块 os 创建文件目录; re模块正则匹配目录名 图片下载地址; time模块 限制下载时间;requests模块获取网页源代码;urllib模块 urllib.urlretrieve(图片url,保存的带扩展名的文件名x.jpg)方法下载图片 3.知识点 文件目录处理  函数封装调用 全局变量 4.代码 #coding:utf-8 import os import re import reque

爬虫_斗图啦_表情包下载

为下一个多线程练练手 1 import requests 2 from lxml import etree 3 import re 4 from urllib import request 5 import time 6 import os 7 8 def get_html(url): 9 headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/

xpath案例 爬取58出租房源信息&解析下载图片数据&乱码问题

58二手房解析房源名称 from lxml import etree import requests url = 'https://haikou.58.com/chuzu/j2/' headers = { 'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Mobile Safari/537.

【Python3爬虫】爬取美女图新姿势--Redis分布式爬虫初体验

一.写在前面 之前写的爬虫都是单机爬虫,还没有尝试过分布式爬虫,这次就是一个分布式爬虫的初体验.所谓分布式爬虫,就是要用多台电脑同时爬取数据,相比于单机爬虫,分布式爬虫的爬取速度更快,也能更好地应对IP的检测.本文介绍的是利用Redis数据库实现的分布式爬虫,Redis是一种常用的菲关系型数据库,常用数据类型包括String.Hash.Set.List和Sorted Set,重要的是Redis支持主从复制,主机能将数据同步到从机,也就能够实现读写分离.因此我们可以利用Redis的特性,借助req