目录

  • 说明
  • Code
    • get_movie_id.py
    • get_movie_url.py
    • get_movie_info.py
    • info2csv.py
    • main.py

说明

首先查看电视剧网页结构,发现所有电视剧都在下面位置:

从中我们并未发现电视剧的链接,于是我们打开几部电视剧发现网页url有没有什么规律。
发现信息在下面文件里:

打开它的Headers:
url:http://front-gateway.mtime.com/library/movie/detail.api?tt=1617353592649&movieId=269369&locationId=290

然后我们打开另一部电视剧看看url有没有什么相同的。
url:http://front-gateway.mtime.com/library/movie/detail.api?tt=1617351165871&movieId=111754&locationId=290

我们发现其中两个url的参数tt和movieId不同。

但是我们试一试如果去掉tt看看是否能访问到内容:

url:http://front-gateway.mtime.com/library/movie/detail.api?movieId=111754&locationId=290

我们发现是能的。

所有我们只需要找到每部电视剧的movieId就可以进行所有电视剧访问了。

movieId在电视剧首页:

Code

请按照如下形式组织代码:

get_movie_id.py

import requestsdef get_movie_id(url):movieId_list = []headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/89.0.4389.82 Safari/537.36'}res_json = requests.get(url=url, headers=headers).json()# print(type(res_json))list_movieId = res_json['data']['items'][2]['items']for item in list_movieId:movieId_list.append(item['movieInfo']['movieId'])return movieId_list

get_movie_url.py

def get_movieid_url(movieId_list):movie_url_list = []for id in movieId_list:movie_url = 'http://front-gateway.mtime.com/library/movie/detail.api?movieId={}&locationId=290'.format(id)movie_url_list.append(movie_url)return movie_url_list

get_movie_info.py

from gevent import monkeymonkey.patch_all()import requests
import gevent
from gevent.queue import Queue
import randomwork = Queue()
movie_info = {'剧名': [], '导演': [], '主演': [], '简介': []}headers = {'Accept': 'pplication/json, text/plain, */*','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Content-Type': 'application/json','Cookie': '_tt_=5F42EA056AFCC7EBAD146F143CEE70BC; __utma=196937584.1304778651.1617260335.1617260335.1617260335.1; __utmz=196937584.1617260335.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); Hm_lvt_07aa95427da600fc217b1133c1e84e5b=1617196207,1617259101,1617346023; Hm_lpvt_07aa95427da600fc217b1133c1e84e5b=1617346629','Host': 'front-gateway.mtime.com','Origin': 'http://movie.mtime.com','Referer': 'http://movie.mtime.com/109956/','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.2261 SLBChan/25','X-Mtime-Wap-CheckValue': 'mtime'
}def get_movie_info(movie_url_list, num_crawler=2):for url in movie_url_list:work.put_nowait(url)taskes_list = []for i in range(num_crawler):task = gevent.spawn(crawler)taskes_list.append(task)gevent.joinall(taskes_list)return movie_infodef crawler():while not work.empty():url = work.get_nowait()res = requests.get(url, headers=headers)# print(res.status_code)# if res.status_code != 200:#     print(url)res = res.json()['data']['basic']actors = []directors = []for actor in res['actors']:if actor['name']:actors.append(actor['name'])for director in res['directors']:if director['name']:directors.append(director['name'])title = res['name']story = res['story']movie_info['剧名'].append(title)movie_info['导演'].append(directors)movie_info['主演'].append(actors)movie_info['简介'].append(story)

info2csv.py

import pandas as pddef tocsv(movie_dict, path):movie_info = pd.DataFrame(movie_dict)movie_info.to_csv(path + r'\mtime_movie_info.csv', encoding='utf-8')

main.py

from crawler.mtime.get_movie_id import get_movie_id
from crawler.mtime.get_movie_info import get_movie_info
from crawler.mtime.get_movie_url import get_movieid_url
from crawler.mtime.info2csv import tocsvurl = 'http://front-gateway.mtime.com/community/top_list/query.api?tt=1617345962465&type=2&pageIndex=1&pageSize=10'
movie_id_list = get_movie_id(url)
movie_url_list = get_movieid_url(movie_id_list)
num_crawler = 1  # 爬虫个数, 多了会被服务器关闭访问, 建议多几个headers随机用
movie_dict = get_movie_info(movie_url_list, num_crawler)
path = r'D:\Study\Python'  # 文件保存位置
tocsv(movie_dict, path)
print('OK')

多协程和队列,爬取时光网电视剧TOP100的数据(剧名、导演、主演和简介)相关推荐

  1. python项目实战分析:爬取时光网电影TOP100

    前言 相信大家在各种看到的都是爬取猫眼,豆瓣电影排行榜TOP100的案例,下面为大家介绍爬取时光网的案例分析,用另一个方式来获取电影TOP100,下面就开始看看实现的过程吧 导入第三方库 用来显示信息 ...

  2. python find()效率_基于python分别采用同步与异步(协程)方式抓取时光网TOP100电影...

    欢迎各位小哥哥小姐姐阅读本的文章,对大家学习有帮助,请点赞加关注哦!!!!!!!!!! 您的点赞和关注将是我持续更新的动力呢.^v^ 有不懂的问题可以私聊我哦! 如题,同步运行就是python按照代码 ...

  3. 使用单线程,多线程,协程,异步爬取包图网大国工匠视频

    使用单线程爬取,多线程,协程爬取,异步爬取包图网视频 文章目录 使用单线程爬取,多线程,协程爬取,异步爬取包图网视频 第一步使用单线程爬取包图网视频 多线程爬取视频 用协程爬取 基于协程的异步爬取 第 ...

  4. python爬电影排名用os bs4_python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比...

    前言 还有一年多就要毕业了,不准备考研的我要着手准备找实习及工作了,所以一直没有更新. 因为Python是自学不久,发现很久不用的话以前学过的很多方法就忘了,今天打算使用简单的BeautifulSou ...

  5. python3 协程爬虫,爬取豆瓣排行榜json数据

    python携程爬取豆瓣电影排行榜json接口数据.仅学习使用,如有侵权.请联系删除 不说废话直接贴代码,大体方法一样,解析方式不同 #python3 jupyter import asyncio i ...

  6. python从网址爬图片协程_python协程gevent案例 爬取斗鱼图片过程解析

    分析 分析网站寻找需要的网址 用谷歌浏览器摁F12打开开发者工具,然后打开斗鱼颜值分类的页面,如图: 在里面的请求中,最后发现它是以ajax加载的数据,数据格式为json,如图: 圈住的部分是我们需要 ...

  7. python协程gevent案例 爬取斗鱼图片过程解析 - python

    文章来源: 敏而好学论坛 嗨学网www.piaodoo.com 欢迎大家相互学习 分析 分析网站寻找需要的网址 用谷歌浏览器摁F12打开开发者工具,然后打开斗鱼颜值分类的页面,如图: 在里面的请求中, ...

  8. python爬虫之爬取时光网电影影评

    最近看了美国往事这部电影.于是就想到最近刚学的爬虫,就像试试把时光网影评爬取下来,并按照影评的名字存放在本地文件夹. 在长影评页面可以看到每篇文章的标题对应都有一个blogid,并且这个id对应该影评 ...

  9. 使用WebCollector爬取时光网电影数据

    数据源http://video.mtime.com/search 原数据是json格式的,其中i标示页码 http://video.mtime.com/api/videoSearch/getFilte ...

最新文章

  1. java什么时候用list_Java快问快答:用 ArrayList 还是 LinkedList?
  2. hello是c语言中的变量吗,C语言hello world详解
  3. 拼多多高速冲刺8亿用户新时代 黄峥卸任董事长 探索行业未来十年发展
  4. CSS图片廊实例详解
  5. POJ 2799 IP Networks
  6. Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
  7. python二多分支例题_Python分支语句练习题
  8. python数据分类方法_Python数据挖掘—分类—贝叶斯分类
  9. mysql启动失败 linux_如何解决MySQL内存不足启动失败的问题
  10. 【Elasticsearch】es 快照 snapshot 操作实战
  11. Python计算任意单调曲线在给定区间上的近似长度
  12. Android UI 事件研究
  13. 华为云devops认证考试课堂笔记2
  14. 【黑马-SpringCloudAlibaba】学习笔记09-Nacos Config--服务配置
  15. winpCap中compile和nocap函数
  16. 使用matlab产生LED灯闪烁代码在普中板子中实验
  17. 【论文浅读】《Deep Pyramidal Residual Networks for Spectral–Spatial Hyperspectral Image Classification》
  18. “校长”潘淳:侠之大者,一蓑烟雨任平生
  19. 寒假回归篇——C语言学习感悟2022.1.16
  20. python脚本批量更改图片大小

热门文章

  1. uniapp实现canvas制作微信小程序海报,线上图片
  2. [RK3288][Android6.0] WiFi的dts配置说明(AP6335)
  3. 关于制备螯合效应之冠醚修饰酚醛/硝酸铽/聚硫醚/苯并-18-冠醚-6的过程分享
  4. Thumbnail 图片压缩
  5. 统计中的p-value检验
  6. 前端面试技巧和注意事项_web前端没有项目经验怎么应对面试?(技巧) -
  7. springmvc如何获取CheckBox数据
  8. 常用小程序开发框架浅析
  9. 追赶时代浪潮的“脸商”,刷脸支付市场前景广阔
  10. 电商抖音直播带货SOP工作流程主播计划脚本方案