python3 协程爬虫,爬取豆瓣排行榜json数据
python携程爬取豆瓣电影排行榜json接口数据。仅学习使用,如有侵权、请联系删除
不说废话直接贴代码,大体方法一样,解析方式不同
#python3 jupyter
import asyncio
import aiohttp
import json
import ssl
import random
from time import time
import os
url='https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=%E7%94%B5%E5%BD%B1&genres=%E6%83%85%E8%89%B2'headers = { 'Host':'movie.douban.com','Connection':'keep-alive','Cache-Control':'max-age=0','Accept': 'text/html, */*; q=0.01','X-Requested-With': 'XMLHttpRequest','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36','DNT':'1','Referer': 'https://movie.douban.com/typerank?type_name=%E6%83%85%E8%89%B2&type=6&interval_id=100:90&action=','Accept-Encoding': 'gzip, deflate, sdch','Accept-Language': 'zh-CN,zh;q=0.8,ja;q=0.6'}async def fetch_content(url,semaphore):async with semaphore:stats_time=random.randrange(1,10)await asyncio.sleep(stats_time) # 防止请求过快 等待随机秒 再加上限制协程数量 防止被passasync with aiohttp.ClientSession(headers=headers, connector=aiohttp.TCPConnector(ssl=False)) as session:async with session.get(url,timeout=60) as response:return await response.json()async def param(url):fetch_list = []semaphore = asyncio.Semaphore(2) # 限制并发量为2for i in range(0,200,20):fetch_list.append(url + '&start='+str(i))tasks =[fetch_content(url,semaphore) for url in fetch_list]jsons = await asyncio.gather(*tasks) for i in jsons: for e in i['data']:title=e['title']directors='/'.join(e['directors'])#导演rate=e['rate']#评分casts='/'.join(e['casts'])#演员url=e['url']#地址await write_fo_file(title,directors, rate, casts, url)async def write_fo_file(title,directors, rate, casts, url):f = open('movie_top250.csv', 'a',encoding='utf8')f.write(f'{title},{directors},{rate},{casts},{url}\n')f.closed async def main():if os.path.exists('movie_top250.csv'):os.remove('movie_top250.csv')start=time() await param(url)end=time()print("Cost {} seconds".format((end - start) / 5))if __name__ =='__main__':await main()
python3 协程爬虫,爬取豆瓣排行榜json数据相关推荐
- python爬虫豆瓣电影评价_使用爬虫爬取豆瓣电影影评数据Python版
在 使用爬虫爬取豆瓣电影影评数据Java版 一文中已详细讲解了爬虫的实现细节,本篇仅为展示Python版本爬虫实现,所以直接上代码 完整代码 爬虫主程序 # 爬虫启动入口 from C02.data ...
- 【Python实战】爬取豆瓣排行榜电影数据(含GUI界面版)
项目简介 这个项目源于大三某课程设计.平常经常需要搜索一些电影,但是不知道哪些评分高且评价人数多的电影.为了方便使用,就将原来的项目重新改写了.当做是对爬虫技术.可视化技术的实践了.主要是通过从排行榜 ...
- 使用爬虫爬取豆瓣电影影评数据Java版
2019独角兽企业重金招聘Python工程师标准>>> 近期被<我不是药神>这部国产神剧刷屏了,为了分析观众对于这部电影的真实感受,我爬取了豆瓣电影影评数据.当然本文仅讲 ...
- python爬取豆瓣排行榜电影数据(含GUI界面版)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- 爬取豆瓣排行榜电影数据
进入豆瓣排行榜喜剧模块页面,我们想要获取其电影数据,首先肯定不能直接对当前url发起请求,因为这样获取的将会是整个页面数据,而不是单纯的电影数据. 经过观察发现该页面可以往下拖动页面而更新电影,所以猜 ...
- 爬虫爬取豆瓣排行榜的电影
import requests import json#json返回的是obj类型if __name__ =='__main__':#指定urlurl='https://movie.douban.co ...
- python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中
我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...
- [爬虫] 爬取豆瓣电影排行榜
申明:本文对爬取的数据仅做学习使用,不涉及任何商业活动,侵删 爬取豆瓣电影排行榜 这是一个Scrapy框架入门级的项目, 它可以帮助我们基本了解Scrapy的操作流程和运行原理 这次我们要做例子的网站 ...
- Python爬虫 爬取豆瓣电影TOP250
Python爬虫 爬取豆瓣电影TOP250 最近在b站上学习了一下python的爬虫,实践爬取豆瓣的电影top250,现在对这两天的学习进行一下总结 主要分为三步: 爬取豆瓣top250的网页,并通过 ...
最新文章
- 每日一皮:代码出现Bug的三种表情!
- 【玩转cocos2d-x之三十七】粒子系统的加载优化
- 易于使用的人工智能_需求分析:如何使用这种易于启动的方法+一个案例研究...
- 前端学习(1343):集合关联
- oracle数据导入与导出
- 深度学习(机器学习)模型压缩开源库整理
- 【OpenCV】OpenCV函数精讲之 -- 命名空间
- c++两个文档匹配数据_MongoDB 数据库的命名、设计规范
- shell脚本启动语法错误syntax error near unexpected token '{
- read()/write()的生命旅程之三——第三章:write()
- teamview centos 配置
- 干货分享|Contrast essay写作步骤分析
- 艰辛坎坷的360崛起之路
- 拼多多怎么设置快捷回复
- 拼多多是PHP还是java,应届程序员收到拼多多offer 表情瞬间爆发
- JavaScript输出菱形
- 剪辑软件生产力工具pr,ae,达芬奇对比
- 【论文翻译】DANN的改进ADDA Multimodal Vigilance Estimation with Adversarial Domain Adaptation Networks
- 整数拆分的两种解法(已完成)
- COM, OLE技术概述