蜂鸟网图片–啰嗦两句

前面的教程内容量都比较大,今天写一个相对简单的,爬取的还是蜂鸟,依旧采用aiohttp 希望你喜欢
爬取页面`https://tu.fengniao.com前面程还是基于学习的目的,为啥选择蜂鸟,没办法,我瞎选的。

一顿熟悉的操作之后,我找到了下面的链接
https://tu.fengniao.com/ajax/ajaxTuPicList.php?page=2&tagsId=15&action=getPicLists

这个链接返回的是JSON格式的数据

  1. page =2页码,那么从1开始进行循环就好了
  2. tags=15 标签名称,15是儿童,13是美女,6391是私房照,只能帮助你到这了,毕竟我这是专业博客 ヾ(◍°∇°◍)ノ゙
  3. action=getPicLists接口地址,不变的地方

数据有了,开爬吧

import aiohttp
import asyncioheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36","X-Requested-With": "XMLHttpRequest","Accept": "*/*"}async def get_source(url):print("正在操作:{}".format(url))conn = aiohttp.TCPConnector(verify_ssl=False)  # 防止ssl报错,其中一种写法async with aiohttp.ClientSession(connector=conn) as session:  # 创建sessionasync with session.get(url, headers=headers, timeout=10) as response:  # 获得网络请求if response.status == 200:  # 判断返回的请求码source = await response.text()  # 使用await关键字获取返回结果print(source)else:print("网页访问失败")if __name__=="__main__":url_format = "https://tu.fengniao.com/ajax/ajaxTuPicList.php?page={}&tagsId=15&action=getPicLists"full_urllist= [url_format.format(i) for i in range(1,21)]event_loop = asyncio.get_event_loop()   #创建事件循环tasks = [get_source(url) for url in full_urllist]results = event_loop.run_until_complete(asyncio.wait(tasks))   #等待任务结束
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

上述代码在执行过程中发现,顺发了20个请求,这样子很容易就被人家判定为爬虫,可能会被封IP或者账号,我们需要对并发量进行一下控制。
使Semaphore控制同时的并发量

import aiohttp
import asyncio
# 代码在上面
sema = asyncio.Semaphore(3)
async def get_source(url):# 代码在上面#######################
# 为避免爬虫一次性请求次数太多,控制一下
async def x_get_source(url):with(await sema):await get_source(url)if __name__=="__main__":url_format = "https://tu.fengniao.com/ajax/ajaxTuPicList.php?page={}&tagsId=15&action=getPicLists"full_urllist= [url_format.format(i) for i in range(1,21)]event_loop = asyncio.get_event_loop()   #创建事件循环tasks = [x_get_source(url) for url in full_urllist]results = event_loop.run_until_complete(asyncio.wait(tasks))   #等待任务结束

走一波代码,出现下面的结果,就可以啦!

在补充上图片下载的代码

import aiohttp
import asyncioimport json## 蜂鸟网图片--代码去上面找
async def get_source(url):print("正在操作:{}".format(url))conn = aiohttp.TCPConnector(verify_ssl=False)  # 防止ssl报错,其中一种写法async with aiohttp.ClientSession(connector=conn) as session:  # 创建sessionasync with session.get(url, headers=headers, timeout=10) as response:  # 获得网络请求if response.status == 200:  # 判断返回的请求码source = await response.text()  # 使用await关键字获取返回结果############################################################data = json.loads(source)photos = data["photos"]["photo"]for p in photos:img = p["src"].split('?')[0]try:async with session.get(img, headers=headers) as img_res:imgcode = await img_res.read()with open("photos/{}".format(img.split('/')[-1]), 'wb') as f:f.write(imgcode)f.close()except Exception as e:print(e)############################################################else:print("网页访问失败")# 为避免爬虫一次性请求次数太多,控制一下
async def x_get_source(url):with(await sema):await get_source(url)if __name__=="__main__":#### 代码去上面找
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

图片下载成功,一个小爬虫,我们又写完了,美滋滋

Python爬虫入门【8】: 蜂鸟网图片爬取之三相关推荐

  1. python爬虫入门练习:BeautifulSoup爬取猫眼电影TOP100排行榜,pandas保存本地excel文件

    传送门:[python爬虫入门练习]正则表达式爬取猫眼电影TOP100排行榜,openpyxl保存本地excel文件 对于上文使用的正则表达式匹配网页内容,的确是有些许麻烦,替换出现任何的差错都会导致 ...

  2. python爬虫——百度贴吧图片爬取 小项目

    项目目的: 爬取贴吧中所有帖子里面的图片 将爬取到的图片存储到名称为贴吧名称的文件夹中 项目环境 python版本:python3.6 用到的库:requests.etree.unquote 浏览器: ...

  3. Python爬虫入门之豆瓣短评爬取

    采用工具pyCharm,python3,工具的安装在这就不多说了,之所以采用python3是因为python2只更新维护到2020年. 新建python项目 File-Settings-project ...

  4. python爬虫入门_3种方法爬取古诗文网站

    目的: 爬取古诗文网的古诗词,获取详细信息,目标网站:https://www.gushiwen.org/default.aspx?page=1 1.根据网页分析可知 下面包含了当前页面的所有信息,所以 ...

  5. Python爬虫入门教程06:爬取数据后的词云图制作

    前言

  6. Python爬虫入门教程31:爬取猫咪交易网站数据并作数据分析

    前言

  7. Python爬虫入门教程32:爬取boss直聘招聘数据并做可视化展示

    前言

  8. Python爬虫入门教程27:爬取某电商平台数据内容并做数据可视化

    前言

  9. Python爬虫入门教程30:爬取拉勾网招聘数据信息

    前言

  10. Python爬虫利用18行代码爬取虎牙上百张小姐姐图片

    Python爬虫利用18行代码爬取虎牙上百张小姐姐图片 下面开始上代码 需要用到的库 import request #页面请求 import time #用于时间延迟 import re #正则表达式 ...

最新文章

  1. 深度学习系列学习博客
  2. 相爱相杀:程序员的数学
  3. 【转】ssh服务器启动和客户端常用操作
  4. react-native项目打包速度优化
  5. Cordova - 彻底搞定IOS编译!
  6. 分布式系统之消息队列
  7. CloudIDE插件开发实战:教你如何调试代码
  8. Python使用turtle绘制阴阳鱼图案
  9. 2015年传智播客JavaEE 第168期就业班视频教程day38-SSH综合案例-1
  10. Linux:ubuntu 下安装软件,卸载,查看已经安装的软件
  11. 每日算法系列【LeetCode 1006】笨阶乘
  12. 【优化算法】混合增强灰狼优化布谷鸟搜索算法(AGWOCS)【含Matlab源码 1331期】
  13. 不用找,你想要的餐饮酒店word模板素材都在这里
  14. 采用泰克示波器TBS2000和TCP0030A电流探头准确评估高速DCDC转换器电感的选择
  15. Android自动化-双击操作
  16. java小红球下载_小红球闯关
  17. CORDIC算法 arctan反正切计算原理及C语言定点实现
  18. softmax和sigmod的pytorch这些
  19. Mac 电脑鼠标和触摸板滚动方向不一致的问题
  20. Days14 ContentProvider ContentResolver

热门文章

  1. 单点登录SSO:可一键运行的完整代码
  2. 大数据分析师岗位是青春饭
  3. cad延伸快捷键_CAD绘图大师都在用的46组快捷键,高效绘图必备
  4. 昭阳K43/E43系列网卡功能相关说明
  5. 504 压测geteway_504 Gateway Time-out是怎么回事?
  6. 行业研究报告-全球与中国白光LED电子皮镜市场现状及未来发展趋势
  7. Spring Boot + Thymeleaf + Echarts 三维地图展示
  8. ie不支持includes_IE11 – 对象不支持属性或方法“includes” – javascript window.location.hash...
  9. mysql中反单引号的作用_mysql中反单引号(`)作用
  10. 如何查看所使用计算机的配置,电脑配置的三种查看方法 不用借助软件怎么查看电脑配置...