斗图啦表情包多线程爬取-撸代码

首先快速的导入我们需要的模块,和其他文章不同,我把相同的表情都放在了同一个文件夹下面,所以需要导入os模块

import asyncio
import aiohttp
from lxml import etree
import os

编写主要的入口方法

if __name__ == '__main__':url_format = "http://www.doutula.com/article/list/?page={}"urls = [url_format.format(index) for index in range(1,586)]loop = asyncio.get_event_loop()tasks = [x_get_face(url) for url in urls]results = loop.run_until_complete(asyncio.wait(tasks))

我们是为了学习,不是为了攻击别人服务器,所以限制一下并发数量

sema = asyncio.Semaphore(3)async def x_get_face(url):with(await sema):await get_face(url)

最后,一顿操作猛如虎,把所有的代码补全,就搞定了,这部分没有什么特别新鲜的地方,找图片链接,然后下载。

'''
遇到不懂的问题?Python学习交流群:1136201545满足你的需求,资料都已经上传群文件,可以自行下载!
'''
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"}
async def get_face(url):print("正在操作{}".format(url))async with aiohttp.ClientSession() as s:async with s.get(url,headers=headers,timeout=5) as res:if res.status==200:html = await res.text()html_format = etree.HTML(html)hrefs = html_format.xpath("//a[@class='list-group-item random_list']")for link in hrefs:url = link.get("href")title = link.xpath("div[@class='random_title']/text()")[0]  # 获取文件头部path = './biaoqings/{}'.format(title.strip())  # 硬编码了,你要先在项目根目录创建一个biaoqings的文件夹if not os.path.exists(path):os.mkdir(path)else:passasync with s.get(url, headers=headers, timeout=3) as res:if res.status == 200:new_html = await res.text()new_html_format = etree.HTML(new_html)imgs = new_html_format.xpath("//div[@class='artile_des']")for img in imgs:try:img = img.xpath("table//img")[0]img_down_url = img.get("src")img_title = img.get("alt")except Exception as e:print(e)async with s.get(img_down_url, timeout=3) as res:img_data = await res.read()try:with open("{}/{}.{}".format(path,img_title.replace('\r\n',""),img_down_url.split('.')[-1]),"wb+") as file:file.write(img_data)except Exception as e:print(e)else:passelse:print("网页访问失败")

等着,大量的表情包就来到了我的碗里。

Python多线程爬取斗图啦表情包相关推荐

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

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

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

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

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

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

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

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

  5. python多线程爬取斗图啦数据

    python多线程爬取斗图啦网的表情数据 使用到的技术点 requests请求库 re 正则表达式 pyquery解析库,python实现的jquery threading 线程 queue 队列 ' ...

  6. 手把手教学php表情包,手把手教你爬取斗图啦表情包

    爬取表情包 闲来无事,突然想到表情包好久没有更新了,正好这几天学了爬虫,利用爬虫来更新一波表情包,哈哈哈. 有一个网站,叫做"斗图啦",网址是:https://www.doutul ...

  7. Python项目实战:爬取斗图网表情包图片

    2019独角兽企业重金招聘Python工程师标准>>> 前言 相信大家在和别人聊天的时候都很喜欢斗图吧,斗着斗着斗忘记睡觉了,哈哈,感情得到了升华,下面来介绍一个利用Python在斗 ...

  8. 熊猫人表情包python 代码_用Python爬取斗图网表情包

    一.介绍 用python处理二进制文件的事情做的比较少,虽然之前有写过分析Ajax抓取今日头条街拍美图,但那个爬虫重在分析Ajax,并没有提到文件路径和文件命名,所以就有了这个爬虫 二.流程 流程一般 ...

  9. python爬取斗图啦表情包并下载到本地

    迫于无聊,又刚好正在学习python,就来记录一篇关于python爬取图片链接下载本地的入门文章... 主要用到的模块: request 和 BeautifulSoup4 开发之前建议先看一下官方给出 ...

最新文章

  1. php析构函数的用法
  2. Unity学习笔记2 简易2D横版RPG游戏制作(二)
  3. MOSS2007的网站和工作区
  4. [云炬创业基础笔记]第七张创业团队测试1
  5. Unhandled event loop exception Item not added
  6. 【Comet OJ - Contest #5 - C】迫真小游戏(优先队列,贪心构造,树,字典序)
  7. python tclerror_TclError:错误的窗口路径名(Python)
  8. 关于复利2.0 3.0
  9. 【解释】while(~scanf(%d, n))的~的含义~scanf
  10. 简析 JSON 中的{}与[]
  11. 对于C语言可移植性的思考
  12. Framebuffer基础知识(三十)
  13. bypass功能介绍
  14. 2021 年 五一数学建模比赛 B 题(第四问至第六问)
  15. java开源内容发布系统_18个Java开源CMS系统一览
  16. python 网络监控系统手机版下载_云视通网络监控系统手机版下载_云视通下载手机版-太平洋下载中心...
  17. `Caché/IRIS` 代码优化效率提升十一条 - 持续更新
  18. 【资料分享】迪文屏使用经验分享
  19. matlab提取数据的一部分,matlab处理excel数据【怎么用MATLAB从excel中提取部分数据】...
  20. sku设计mysql_SKU数据库设计

热门文章

  1. 我的性格类型—— INFP(哲学家型人格 )
  2. linux关闭显示器接口类型,Linux Mint 笔记本外接显示器,关闭笔记本显示器的方法...
  3. 简时间:纯净之光面膜——我的美颜秘密
  4. 【文献研究】轴辐式航线网络设计—Liner hub-and-spoke shipping network design
  5. java jprogressbar_Java -Swing-学习笔记
  6. add partition mysql_mysql partition 功能
  7. 分享6款越用越好用的微信小程序
  8. 如何打英語音標, 快速輸入音標
  9. [Python]基础语法(二)文本处理函数
  10. Generative Sparse Detection Networks for 3D Single-shot Object Detection稀疏检测网络(GSDN)