斗图啦表情包多线程爬取-写在前面

今天在CSDN博客,发现好多人写爬虫都在爬取一个叫做斗图啦的网站,里面很多表情包,然后瞅了瞅,各种实现方式都有,今天我给你实现一个多线程版本的。关键技术点 aiohttp ,你可以看一下我前面的文章,然后在学习一下。

网站就不分析了,无非就是找到规律,拼接URL,匹配关键点,然后爬取。

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

首先快速的导入我们需要的模块,和其他文章不同,我把相同的表情都放在了同一个文件夹下面,所以需要导入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)

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

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:

pass

async 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:

pass

else:

print("网页访问失败")

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

python表情包斗图_Python爬虫入门教程 13-100 斗图啦表情包多线程爬取相关推荐

  1. Python爬虫入门教程【3】:美空网数据爬取

    美空网数据----简介 从今天开始,我们尝试用2篇博客的内容量,搞定一个网站叫做"美空网"网址为:http://www.moko.cc/, 这个网站我分析了一下,我们要爬取的图片在 ...

  2. python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider

    1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下. 安装起来是非常简单的 pip install pyspi ...

  3. python爬虫专家_Python爬虫入门教程:微医挂号网专家团队数据抓取pyspider

    1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下. github地址: https://github.com ...

  4. python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider-阿里云开发者社区...

    1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下. 安装起来是非常简单的 pip install pyspi ...

  5. python爬b站评论_Python爬虫入门教程 32-100 B站博人传评论数据抓取 scrapy

    1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...

  6. Python爬虫入门教程11:新版王者荣耀皮肤图片的爬取

    前言

  7. 转g代码教程_图深度学习入门教程(九)——图滤波神经网络模型

    本教程是一个系列免费教程,争取每月更新2到4篇.(由于精力有限,近期停止了一段时间,在此向大家道个歉). 主要是基于图深度学习的入门内容.讲述最基本的基础知识,其中包括深度学习.数学.图神经网络等相关 ...

  8. 爬虫入门—requests模块基础之关键字搜狗搜索信息页面爬取

    爬虫入门-requests模块基础之关键字搜狗搜索信息页面爬取 Author: Labyrinthine Leo   Init_time: 2021.02.16 Key Words: Spider.r ...

  9. 推荐一部python教程_Python爬虫入门教程:博客园首页推荐博客排行的秘密

    1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首 ...

最新文章

  1. 剑指Offer #10 矩形覆盖(问题分析)
  2. android 相机路径,android – 如何获取刚从相机捕获的图像路径
  3. XAMPP的MYSQL无法启动 -This may be due to a blocked port, missing dependencies,
  4. java模式匹配_用Java匹配模式
  5. 植保___农药基础知识
  6. 简单就是不复杂 转
  7. 技巧~向URL地址添加参数
  8. MT4缠论公式指标(缠中狩猎外汇MT4缠论分笔分段中枢公式指标)
  9. python前端Django指南之Hello worldl输出
  10. MacBook如何设置双面打印
  11. idea2018 2020_2019~2020上海沪牌价格一览表
  12. select、poll、epoll之间的区别总结摘自http://www.cnblogs.com/Anker/p/3265058.html
  13. 线性代数计算器C语言(1)——计算行列式值
  14. GitHub 上受欢迎的 Android UI Library 整理
  15. 华为服务器显示灯p02,华为服务器uid灯蓝色
  16. SpringSecurity,jwt oathu sso,YeZiJie
  17. 嵌入式Linux驱动学习【9】—— Nor Flash
  18. 关于pip安装gap_statistic
  19. npj | 王德华/张学英等揭示荒漠啮齿动物通过“菌群-肠-肾”轴耐受高盐的机制...
  20. 批量修改文件名中的部分文字

热门文章

  1. 编译器设计(十一)——标量优化
  2. 一个屌丝程序猿的人生(六十)
  3. 【PAT】乙级 1040 有几个PAT (25 分) c++
  4. 复旦大学白悦辰课题组诚聘博士后、科研助理
  5. AnyMP4 Mac Video Converter Ultimate for Mac(视频格式转换器) v8.2.18激活版
  6. 我编程我快乐——读后感(前奏)
  7. react中数据状态管理的四种方案
  8. Android程序员的悲哀是什么?
  9. Ford_Fulkerson算法
  10. 最小生成树-Prime