import requests
import threading
import os
from bs4 import BeautifulSoup
from queue import Queue
from threading import Thread
"""表情包爬虫"""#创建一个多线程类
class DownLoad_Images(Thread):#重写构造函数def __init__(self,queue,path):Thread.__init__(self)#类属性self.queue=queueself.path=pathif not os.path.exists(path):os.mkdir(path)#重写run方法def run(self):while True:url = self.queue.get()try:download_images(url,self.path)except:print('下载失败')finally:self.queue.task_done()def download_images(url,path):headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"}#数据请求response=requests.get(url=url,headers=headers).text#数据筛选soup=BeautifulSoup(response,'lxml')#find查找指定标签数据img_list=soup.find_all('img',class_='ui image lazy')#二次提取for img in img_list:image_name=img['title']image_url = img['data-original']#下载try:with open(path+image_name+os.path.splitext(image_url)[-1],'wb') as f:image=requests.get(image_url,headers=headers).contentprint("正在保存图片:",image_name)f.write(image)print('保存成功:',image_name)except:pass
if __name__ == "__main__":_url='https://www.fabiaoqing.com/biaoqing/lists/page/{page}.html'urls=[_url.format(page=page) for page in range(1,201)]queue=Queue()path = './threading_images/'for x in range(10):worker = DownLoad_Images(queue,path)#守护线程worker.daemon=Trueworker.start()for url in urls:queue.put(url)queue.join()print("下载完成")

网站比较简单,就没必要分析了,也可直接使用requests直接请求,先拿到一个页面,在拿到详情页,拿到所有的url,保存二进制数据就行了,这个爬虫的主要有点是使用多线程加快爬取效率。

爬虫实例十四 多线程爬取一万张表情包相关推荐

  1. 爬虫笔记——多线程爬取斗图网表情包(threading)

    爬虫笔记--多线程爬取斗图网表情包(threading) 网站观察 爬取框架 具体代码 斗图网网址:斗图网,这里以爬取最新套图为例. 网站观察 在网页翻页操作中可以看到网页是非动态加载的(page为页 ...

  2. 斗图斗不过小伙伴?python多线程爬取斗图网表情包,助你成为斗图帝!

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

  3. 聊天没有表情包被嘲讽,程序员直接用python爬取了十万张表情包

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

  4. 聊天没有表情包被嘲讽,用python爬取了十万张表情包

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

  5. Python多线程爬取斗图啦表情包

    斗图啦表情包多线程爬取-撸代码 首先快速的导入我们需要的模块,和其他文章不同,我把相同的表情都放在了同一个文件夹下面,所以需要导入os模块 import asyncio import aiohttp ...

  6. python3爬虫——多线程爬取斗图网表情包

    本文用多线程生产者,消费者模式爬取斗图网的表情包,并下载保存到本地,get_page()函数负责获取页面的图片的url链接,downlod_img()函数通过图片url下载保存到本地文件夹中,开启多线 ...

  7. 多线程爬取斗图网表情包

    import requests import re import queue import threading import timeHeaders = {'User-Agent': 'Mozilla ...

  8. python爬取大众点评数据_python爬虫实例详细介绍之爬取大众点评的数据

    python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python ...

  9. python3爬虫系列16之多线程爬取汽车之家批量下载图片

    python3爬虫系列16之多线程爬取汽车之家批量下载图片 1.前言 上一篇呢,python3爬虫系列14之爬虫增速多线程,线程池,队列的用法(通俗易懂),主要介绍了线程,多线程,和两个线程池的使用. ...

  10. 【每日爬虫】:利用线程池爬取2万张装修效果图

    文章目录 一.前言 二.需求 三.技术路线 四.线程池爬取2万张装修效果图 五.其他 一.前言 2020-04-08日爬虫练习 每日一个爬虫小练习,学习爬虫的记得关注哦! 学习编程就像学习骑自行车一样 ...

最新文章

  1. docker与VM虚拟机区别
  2. do……while 循环
  3. python在线翻译代码_Python 20行简单实现有道在线翻译的详解
  4. 三年了总觉的还是该写点什么
  5. jzoj3844-统计损失【树形dp,换根法】
  6. html5语义化 兼容,HTML5语义化标签,兼容性问题
  7. [Android]Log打印
  8. 裘宗燕:C/C++ 语言中的表达式求值
  9. Linux/Android之perf追内存泄漏工具(api级别)
  10. 约瑟夫环(C语言实现)
  11. dbfs和dbm的换算_「清晰易懂」dBFS、dBm、dBV、dBW、0dB、-3dB概念解析
  12. Vue项目 在chrome页面崩溃:喔唷 崩溃了(总结)
  13. 前馈神经网络——神经元
  14. office的最佳快捷键——快速访问工具栏
  15. 平面解析几何----圆锥曲线1/AF+1/BF=2/ep的三种证法
  16. 2022年秋招 Java后端程序员如何应对面试?
  17. centos 命令行模式切换桌面化
  18. Canvas3——绘制渐变图形与绘制变形图形
  19. adb发送什么命令能在手机屏幕弹窗显示_Android 手机投屏在 Ubuntu 上的方法
  20. CDA1级习题复习(3)

热门文章

  1. [MySql]默认密码的查找与修改
  2. webpack之loader篇
  3. MongoDB 覆盖索引查询
  4. Enterprise Library引起的A reference to 'System.Design' could not be added
  5. 2.业务架构·应用架构·数据架构实战 --- TOGAF理论全景解读
  6. 6.这就是搜索引擎:核心技术详解 --- 链接分析
  7. 37.go struct 结构
  8. 147. class_exists()
  9. TamperIE - 一个小巧的XSS漏洞检测辅助工具
  10. QTP11 5发布,改名UFT