打开豆瓣,点击选电影

到这里你会发现很简单,直接用xpath不久很容易获取到电影名及评分了吗。其实我们看到的页面是经js渲染过的,真正数据的网页在⬇

当你点击加载更多时,会发现这个网址的前部分不变,0变成20。
我们先来获取热门这一类。
用requests获取到的是json格式的数据,也就是python中的字典。
获取‘subjects’对应的值,是一个包含电影信息的列表。
遍历列表,即可获取对应的影片信息,择需保存。
完成一页后,判断这一页是否获取到信息。若有,则继续下一页获取。
获取方式,增加20计数器,递归自身。

base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start='
count = 0def download():url = base_url + str(count)result = requests.get(url=url, headers=header)result_json = json.loads(result.text)['subjects']print(result_json)for item in result_json:film_name = item['title']rate = item['rate']url = item['url']content = '影片名:' + film_name + '\n豆瓣评分:' + rate + '\n网址:' + url + '\n\n'with open('豆瓣电影/' + self.target + '.txt', 'a', errors='ignore') as f:f.write(content)if result_json:count += 20download()

其它几大类除了base_url不一样,其它一致。
完整代码

import requests, json, osclass DouBanSpider:def __init__(self):print('现有分类:热门、经典、豆瓣高分、冷门佳作、华语、喜剧、悬疑、最新、动作')self.target = input('请输入要获取影片的类别:')self.count = 0def confirm_base_url(self):if not os.path.exists('豆瓣电影'):os.makedirs('豆瓣电影')if os.path.exists('豆瓣电影/' + self.target + '.txt'):os.remove('豆瓣电影/' + self.target + '.txt')if self.target == '热门':self.base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=' \'%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start='elif self.target == '经典':self.base_url = 'https://movie.douban.com/j/search_subjects?type=movie&' \'tag=%E7%BB%8F%E5%85%B8&sort=time&page_limit=20&page_start='elif self.target == '豆瓣高分':self.base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=' \'%E8%B1%86%E7%93%A3%E9%AB%98%E5%88%86&sort=time&page_limit=20&page_start='elif self.target == '冷门佳作':self.base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=' \'%E5%86%B7%E9%97%A8%E4%BD%B3%E7%89%87&sort=time&page_limit=20&page_start='elif self.target == '最新':self.base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=' \'%E6%9C%80%E6%96%B0&page_limit=20&page_start='elif self.target == '华语':self.base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=' \'%E5%8D%8E%E8%AF%AD&sort=time&page_limit=20&page_start='elif self.target == '悬疑':self.base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=' \'%E6%82%AC%E7%96%91&sort=time&page_limit=20&page_start='elif self.target == '喜剧':self.base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=' \'%E5%96%9C%E5%89%A7&sort=time&page_limit=20&page_start='elif self.target == '动作':self.base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=' \'%E5%8A%A8%E4%BD%9C&sort=time&page_limit=20&page_start='else:print('输入有误')self.target = input('请重新输入要获取影片的类别:')self.confirm_base_url()self.download()def download(self):url = self.base_url + str(self.count)result = requests.get(url=url, headers=header)result_json = json.loads(result.text)['subjects']print(result_json)for item in result_json:film_name = item['title']rate = item['rate']url = item['url']content = '影片名:' + film_name + '\n豆瓣评分:' + rate + '\n网址:' + url + '\n\n'with open('豆瓣电影/' + self.target + '.txt', 'a', errors='ignore') as f:f.write(content)if result_json:self.count += 20self.download()if __name__ == '__main__':header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ''(KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}t = DouBanSpider()t.confirm_base_url()

python获取豆瓣电影相关推荐

  1. 【Python练习】如何使用Pandas获取“豆瓣电影”相关数据,并生成Excel表格

    使用Python获取"豆瓣电影"相关数据,并生成Excel表格 本文使用了requests和pandas第三方库,对豆瓣电影各相关数据进行爬取,并记录至Excel表格内.但发现存在 ...

  2. Python自定义豆瓣电影种类,排行,点评的爬取与存储(高阶上)

    Python 2.7 IDE Pycharm 5.0.3 Firefox 47.0.1 豆瓣电影系列: - 基础抓取(限于"豆瓣高分"选项电影及评论)请看↓ Python自定义豆瓣 ...

  3. Python自定义豆瓣电影种类,排行,点评的爬取与存储(进阶下)

    Python 2.7 IDE Pycharm 5.0.3 Firefox 47.0.1 如有兴趣可以从如下几个开始看起,其中有我遇到的很多问题: 基础抓取(限于"豆瓣高分"选项电影 ...

  4. python爬虫-豆瓣电影Top250

    豆瓣电影Top250 一.准备环境 idea+python插件/python 一.需求分析 1. 运用代码获取豆瓣电影Top250里面电影的相关信息: 影片详情链接: 影片名称: 影片图片链接: 影片 ...

  5. Python自定义豆瓣电影种类,排行,点评的爬取与存储(进阶上)

    Python 2.7  IDE Pycharm 5.0.3  Firefox 47.0.1 具体Selenium及PhantomJS请看Python+Selenium+PIL+Tesseract真正自 ...

  6. python爬虫—豆瓣电影海报(按类别)

    原文地址:http://www.alannah.cn/2019/04/06/getdouban/ python爬虫-豆瓣电影海报 目标:通过python爬虫在豆瓣电影上按类别对电影海报等数据进行抓取, ...

  7. Python爬虫实战,pyecharts模块,Python实现豆瓣电影TOP250数据可视化

    前言 利用Python实现豆瓣电影TOP250数据可视化.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: pandas模块 pyecharts模块: 以及一些 ...

  8. python pandas 豆瓣电影 top250 数据分析

    python pandas 豆瓣电影 top250 数据分析 豆瓣电影top250数据分析 数据来源(豆瓣电影top250) 爬虫代码比较简单 数据较为真实,可以进行初步的数据分析 可以将前面的几篇文 ...

  9. 爬虫:获取豆瓣电影爱情片榜单封面图片

    电影中单纯而美好的爱情总是让人陷入美好无瑕的幻想. 代码已上传至个人GitHub,可供查看:获取豆瓣电影爱情片榜单封面图片 爬虫:获取豆瓣电影爱情片榜单封面图片 目的:获取豆瓣电影爱情片榜单封面图片, ...

最新文章

  1. FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)
  2. 数据竞赛Tricks集锦
  3. FPGA之道(10)布线资源与接口资源
  4. Docker之docker简介及其优势
  5. 【简便解法】1084 外观数列 (20分)_24行代码AC
  6. LabVIEW设计模式系列——移位寄存器
  7. WORD文档的超链接无法打开——“由于本机的限制该操作已被取消”的解决方法
  8. matlabapp窗口图像_matlab – 如何自定义App Designer图形的背景?
  9. 深度学习与TensorFlow:FCN论文学习笔记
  10. php 查询和redis,php如何查询redis
  11. Eclipse 构建Maven项目--普通web项目 复制另外一个项目的配置文件导致的问题
  12. MVC3中Ajax.ActionLink用法
  13. 成功要素:富兰克林的13条必要美德! 与 狗熊掰棒子
  14. Windows + Ubuntu双系统开机选择界面美化
  15. C++实现一个线程池
  16. 【续】关于对MSB/LSB写0时的步骤
  17. vue自定义指令—directive详解
  18. python计算机视觉:创建缩略图
  19. Java的API(Scanner\Object\Date区\Math\Random\Arrays\String区\regex\包装类...)一般是parse(String)
  20. 基于用户的协同过滤推荐算法原理和实现

热门文章

  1. Android语音转文字一使用AudioRecord录音
  2. IOS基础开发二(iphone计算器)
  3. 针对以#开头,以;结尾的文档转中文的一些想法
  4. 微信公众号简单开发(2)验证服务器地址
  5. 关于嘉立创贴片下单流程及接单规范汇总
  6. RPG Maker MV笔记-软件介绍
  7. Shellshock_Attack
  8. python3表白代码弹窗_抖音弹窗表白代码怎么写 弹窗表白制作方法
  9. 纯 CSS 实现蜡烛融化(水滴)效果
  10. 爬取Google Scholar论文列表,如何利用公开数据进行合著作者分析?