python表情包斗图_Python爬虫入门教程 13-100 斗图啦表情包多线程爬取
斗图啦表情包多线程爬取-写在前面
今天在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 斗图啦表情包多线程爬取相关推荐
- Python爬虫入门教程【3】:美空网数据爬取
美空网数据----简介 从今天开始,我们尝试用2篇博客的内容量,搞定一个网站叫做"美空网"网址为:http://www.moko.cc/, 这个网站我分析了一下,我们要爬取的图片在 ...
- python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider
1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下. 安装起来是非常简单的 pip install pyspi ...
- python爬虫专家_Python爬虫入门教程:微医挂号网专家团队数据抓取pyspider
1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下. github地址: https://github.com ...
- python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider-阿里云开发者社区...
1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下. 安装起来是非常简单的 pip install pyspi ...
- python爬b站评论_Python爬虫入门教程 32-100 B站博人传评论数据抓取 scrapy
1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...
- Python爬虫入门教程11:新版王者荣耀皮肤图片的爬取
前言
- 转g代码教程_图深度学习入门教程(九)——图滤波神经网络模型
本教程是一个系列免费教程,争取每月更新2到4篇.(由于精力有限,近期停止了一段时间,在此向大家道个歉). 主要是基于图深度学习的入门内容.讲述最基本的基础知识,其中包括深度学习.数学.图神经网络等相关 ...
- 爬虫入门—requests模块基础之关键字搜狗搜索信息页面爬取
爬虫入门-requests模块基础之关键字搜狗搜索信息页面爬取 Author: Labyrinthine Leo Init_time: 2021.02.16 Key Words: Spider.r ...
- 推荐一部python教程_Python爬虫入门教程:博客园首页推荐博客排行的秘密
1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首 ...
最新文章
- 剑指Offer #10 矩形覆盖(问题分析)
- android 相机路径,android – 如何获取刚从相机捕获的图像路径
- XAMPP的MYSQL无法启动 -This may be due to a blocked port, missing dependencies,
- java模式匹配_用Java匹配模式
- 植保___农药基础知识
- 简单就是不复杂 转
- 技巧~向URL地址添加参数
- MT4缠论公式指标(缠中狩猎外汇MT4缠论分笔分段中枢公式指标)
- python前端Django指南之Hello worldl输出
- MacBook如何设置双面打印
- idea2018 2020_2019~2020上海沪牌价格一览表
- select、poll、epoll之间的区别总结摘自http://www.cnblogs.com/Anker/p/3265058.html
- 线性代数计算器C语言(1)——计算行列式值
- GitHub 上受欢迎的 Android UI Library 整理
- 华为服务器显示灯p02,华为服务器uid灯蓝色
- SpringSecurity,jwt oathu sso,YeZiJie
- 嵌入式Linux驱动学习【9】—— Nor Flash
- 关于pip安装gap_statistic
- npj | 王德华/张学英等揭示荒漠啮齿动物通过“菌群-肠-肾”轴耐受高盐的机制...
- 批量修改文件名中的部分文字