爬虫实例十四 多线程爬取一万张表情包
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,保存二进制数据就行了,这个爬虫的主要有点是使用多线程加快爬取效率。
爬虫实例十四 多线程爬取一万张表情包相关推荐
- 爬虫笔记——多线程爬取斗图网表情包(threading)
爬虫笔记--多线程爬取斗图网表情包(threading) 网站观察 爬取框架 具体代码 斗图网网址:斗图网,这里以爬取最新套图为例. 网站观察 在网页翻页操作中可以看到网页是非动态加载的(page为页 ...
- 斗图斗不过小伙伴?python多线程爬取斗图网表情包,助你成为斗图帝!
最近python基础课讲到了多线程,老师让交个多线程的实例练习.于是来试试多线程爬虫,正好复习一下mooc上自学的嵩天男神的爬虫知识.想法很美好,过程却很心酸,从早上开始写,每次出现各种奇怪问题,到现 ...
- 聊天没有表情包被嘲讽,程序员直接用python爬取了十万张表情包
聊天没有表情包被嘲讽,程序员直接用python爬取了十万张表情包 前言 分析页面 具体实现 解析页面 获取网页内容 解析网页内容 文件下载 多线程下载 成果 总结 前言 事情要从几天前说起,我有一个朋 ...
- 聊天没有表情包被嘲讽,用python爬取了十万张表情包
来源于网络,侵删 前言 事情要从几天前说起,我有一个朋友,他在和他喜欢的小姐姐聊天时,聊天的气氛一直非常尬,这时他就想发点表情包来缓和一下气氛,但一看自己的表情包收藏都是这样的... ...这发过去, ...
- Python多线程爬取斗图啦表情包
斗图啦表情包多线程爬取-撸代码 首先快速的导入我们需要的模块,和其他文章不同,我把相同的表情都放在了同一个文件夹下面,所以需要导入os模块 import asyncio import aiohttp ...
- python3爬虫——多线程爬取斗图网表情包
本文用多线程生产者,消费者模式爬取斗图网的表情包,并下载保存到本地,get_page()函数负责获取页面的图片的url链接,downlod_img()函数通过图片url下载保存到本地文件夹中,开启多线 ...
- 多线程爬取斗图网表情包
import requests import re import queue import threading import timeHeaders = {'User-Agent': 'Mozilla ...
- python爬取大众点评数据_python爬虫实例详细介绍之爬取大众点评的数据
python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python ...
- python3爬虫系列16之多线程爬取汽车之家批量下载图片
python3爬虫系列16之多线程爬取汽车之家批量下载图片 1.前言 上一篇呢,python3爬虫系列14之爬虫增速多线程,线程池,队列的用法(通俗易懂),主要介绍了线程,多线程,和两个线程池的使用. ...
- 【每日爬虫】:利用线程池爬取2万张装修效果图
文章目录 一.前言 二.需求 三.技术路线 四.线程池爬取2万张装修效果图 五.其他 一.前言 2020-04-08日爬虫练习 每日一个爬虫小练习,学习爬虫的记得关注哦! 学习编程就像学习骑自行车一样 ...
最新文章
- docker与VM虚拟机区别
- do……while 循环
- python在线翻译代码_Python 20行简单实现有道在线翻译的详解
- 三年了总觉的还是该写点什么
- jzoj3844-统计损失【树形dp,换根法】
- html5语义化 兼容,HTML5语义化标签,兼容性问题
- [Android]Log打印
- 裘宗燕:C/C++ 语言中的表达式求值
- Linux/Android之perf追内存泄漏工具(api级别)
- 约瑟夫环(C语言实现)
- dbfs和dbm的换算_「清晰易懂」dBFS、dBm、dBV、dBW、0dB、-3dB概念解析
- Vue项目 在chrome页面崩溃:喔唷 崩溃了(总结)
- 前馈神经网络——神经元
- office的最佳快捷键——快速访问工具栏
- 平面解析几何----圆锥曲线1/AF+1/BF=2/ep的三种证法
- 2022年秋招 Java后端程序员如何应对面试?
- centos 命令行模式切换桌面化
- Canvas3——绘制渐变图形与绘制变形图形
- adb发送什么命令能在手机屏幕弹窗显示_Android 手机投屏在 Ubuntu 上的方法
- CDA1级习题复习(3)
热门文章
- [MySql]默认密码的查找与修改
- webpack之loader篇
- MongoDB 覆盖索引查询
- Enterprise Library引起的A reference to 'System.Design' could not be added
- 2.业务架构·应用架构·数据架构实战 --- TOGAF理论全景解读
- 6.这就是搜索引擎:核心技术详解 --- 链接分析
- 37.go struct 结构
- 147. class_exists()
- TamperIE - 一个小巧的XSS漏洞检测辅助工具
- QTP11 5发布,改名UFT