爬虫入门——使用多协程以及队列爬取时光网电视剧top100

本文介绍了如何使用Python的gevent和queue模块,结合多协程和队列爬取时光网电视剧TOP100的信息,并存储到CSV文件。在爬虫过程中,分析了网页URL规律,设置了伪装Headers,创建队列并定义爬虫函数,最终将数据写入CSV文件。虽然存在写入CSV时的乱序问题,但作为入门案例,提供了宝贵的学习经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬虫入门——使用多协程以及队列爬取时光网电视剧top100

前言

python爬虫入门案例,学习总结,依旧存在小bug

一、要求

请使用多协程和队列,爬取时光网电视剧TOP100的数据(剧名、导演、主演和简介),并用CSV模块将数据存储下来(文件名:time100.csv)。

  1. 使用gevent实现多协程爬虫的重点:
    定义爬取函数
    用gevent.spawn()创建任务
    用gevent.joinall()执行任务

  2. 使用queue模块的重点:
    用Queue()创建队列
    用put_nowait()储存数据
    用get_nowait()提取数据
    queue对象的其他方法:empty()判断队列是否为空,full()判断队列是否为满,qsize()判断队列还剩多少

  3. csv写入的步骤:
    创建文件调用open()函数
    创建对象借助writer()函数
    写入内容调用writer对象的writerow()方法
    关闭文件close()

二、分析与代码实现

1.查看电视剧网页结构

在这里插入图片描述

2.查找网页url规律

在这里插入图片描述
因为在Query String Parameters中并未发现电视剧url的规律,所以我们点开几部电视剧具体来寻找url规律
在这里插入图片描述
No.1 绅士大盗:
Url_1=‘http://frontgateway.mtime.com/library/movie/detail.api?tt=1617390652977&movieId=15167&locationId=290’
在这里插入图片描述
No.2 老友记
Url_2=‘http://front-gateway.mtime.com/library/movie/detail.api?tt=1617390872527&movieId=269369&locationId=290’

对比Url_1和Url_2,发现tt和movieId不同,去掉tt后发现仍可访问,所以主要是movieId的原因,此时我们爬取每一部电视剧的url
ps.因为我当时是直接看的network,所以爬的itemId,但是与movieId相同,不影响结果
代码如下:

#获得tv的url
res_tv=requests.get('http://front-gateway.mtime.com/library/index/app/topList.api?')
json_tv=res_tv.json()
#因为发现movieId与主页的itemId相同,此处直接使用主页的itemId
list_tv=json_tv['data']['tvTopList']['topListInfos'][0]['items']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值