pc版大概有500条记录,mobile大概是50部,只有热门的,所以少一点

url构造很简单,主要参数就是page_limit与page_start,每翻一页,start+=20即可,tag是"美剧"编码后的结果,直接带着也可以,用unquote解码也可以,注意headers中一定要带上refer

 1 import json
 2 import requests
 3 import math
 4 import os
 5 import shutil
 6 from pprint import pprint
 7 from urllib import parse
 8
 9
10 class DoubanSpliderPC:
11     def __init__(self):
12         self.url = parse.unquote(
13             "https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%BE%8E%E5%89%A7&sort=recommend&page_limit=20&page_start={}")
14
15         self.headers = {
16             "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
17             "Referer": "https://movie.douban.com/tv/"
18         }
19         self.file_dir = "./douban_american_pc.txt"
20
21
22     def parse_url(self):
23             number = 0
24             while True:
25                 url = self.url.format(number)
26                 print(url)
27                 response = requests.get(url, headers=self.headers)
28                 response_dict = json.loads(response.content.decode())
29                 subjects_list = response_dict["subjects"]
30                 with open(self.file_dir, "a", encoding="utf-8") as file:
31                     for subject in subjects_list:
32                        file.write(json.dumps(subject, ensure_ascii=False))
33                        file.write("\r\n")
34                 if len(subjects_list) < 20:
35                     break
36                 number += 20
37
38     def run(self):
39         # 删除之前保存的数据
40         if os.path.exists(self.file_dir):
41             os.remove(self.file_dir)
42             print("文件已清空")
43         self.parse_url()
44
45
46 def main():
47     splider = DoubanSpliderPC()
48     splider.run()
49
50 if __name__ == '__main__':
51     main()

moblie类似,不过抓包的时候找那个Item就可以了

 1 import json
 2 import requests
 3 import math
 4 import os
 5 import shutil
 6 from pprint import pprint
 7
 8
 9 # 爬取豆瓣的美剧页面(手机版只有50条)
10 class DouBanSpliderMobile:
11     pageCount = 18
12     total = None
13
14     def __init__(self):
15         self.first_url = "https://m.douban.com/rexxar/api/v2/subject_collection/tv_american/items?os=ios&for_mobile=1&start={}&count=18&loc_id=108288&_=1552995446961"
16         self.headers = {
17             "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
18             "Referer": "https://m.douban.com/tv/american"
19         }
20         self.file_dir = "./douban_american_mobile.txt"
21
22     def get_url_list(self):
23         url_list = []
24         for i in range(math.ceil(DouBanSpliderMobile.total / DouBanSpliderMobile.pageCount)):
25             url = self.first_url.format(i * 18)
26             url_list.append(url)
27         return url_list
28
29     def parse_url(self, url):
30         response = requests.get(url, headers=self.headers)
31         response_dict = json.loads(response.content.decode())
32         DouBanSpliderMobile.total = int(response_dict["total"])
33         with open(self.file_dir, "a", encoding="utf-8") as file:
34             json.dump(response_dict["subject_collection_items"], file, ensure_ascii=False, indent=2)
35
36     def run(self):
37         # 解析第一个url,获取total
38         self.parse_url(self.first_url.format(0))
39         url_list = self.get_url_list()
40
41         # 删除之前保存的文件
42         if os.path.exists(self.file_dir):
43             os.remove(self.file_dir)
44
45         for url in url_list:
46             self.parse_url(url)
47
48 def main():
49     douban_splider = DouBanSpliderMobile()
50     douban_splider.run()
51
52
53 if __name__ == '__main__':
54     main()

转载于:https://www.cnblogs.com/tele-share/p/10567665.html

python 爬取豆瓣的美剧相关推荐

  1. python 爬取豆瓣top100电影页面

    python 爬取豆瓣top100电影页面 运行结果截图: 代码: (原网站:https://movie.douban.com/top250) 1.将页面保存 避免多次访问 (登陆状态需页面cooki ...

  2. 利用python爬取豆瓣电影top250

    利用python爬取豆瓣电影top250: 注:本内容只是作为个人学习记录 1.业务分析 进入网页https://movie.douban.com/top250 可以看见每部电影都呈现在眼前,点击电影 ...

  3. Python爬取豆瓣电影top250的电影信息

    Python爬取豆瓣电影top250的电影信息 前言 一.简介 二.实例源码展示 小结 前言 相信很多小伙伴在学习网络爬虫时,老师们会举一些实例案例讲解爬虫知识,本文介绍的就是经典爬虫实际案例–爬取豆 ...

  4. python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法...

    def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 ( ...

  5. python爬取豆瓣影评理论依据_我用Python爬取了豆瓣的影评

    使用Python爬取豆瓣的影评,比爬取网易云简单,因为不需要设置特定的headers,关于网易云说几句,很难爬取,对请求头有着严格的要求,前几年那会还好些. 爬取结果分为:用户名,评价的星级,评论的内 ...

  6. python爬取豆瓣排行榜电影(静态爬取)(二次爬取)

    目录 python爬取豆瓣排行榜电影(静态爬取) 获取网站url 获取网站headers get请求访问url BeautifulSoup解析网站 爬取html数据 完整代码 python爬取豆瓣排行 ...

  7. python爬取豆瓣读书并进行图形化分析

    python爬取豆瓣读书并进行图形化分析 豆瓣读书网页数据爬取并保存至csv 对数据进行分析并汇成图形 绘制散点图 图形效果展示 以下代码内容大多是团队小伙伴的杰作,而本人只是为了能让更多的人学习到知 ...

  8. 用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内容)

    爬虫入门:python爬取豆瓣影评及影片信息:影片评分.评论时间.用户ID.评论内容 思路分析 元素定位 完整代码 豆瓣网作为比较官方的电影评价网站,有很多对新上映影片的评价,不多说,直接进入正题. ...

  9. Python爬取豆瓣+数据可视化

    博客原文和源码下载:Python爬取豆瓣+数据可视化 前言 前段时间应我姐邀请,看了一下Python爬虫.不得不说Python的语法确实简洁优美,可读性强,比较接近自然语言,非常适合编程的初学者上手. ...

最新文章

  1. ways to improve your presentation by your own
  2. B - Average Numbers CodeForces - 134A(水题,思维)
  3. Oracle数据库的命令工具sql*plus/sqlplus介绍
  4. info testing mysql_SQLMASQLMAP中文说明(linux版本)
  5. declare sql语句_SQL语句大全【第二部分】技巧+经典案例
  6. Java高级面试题!kafkastreams加时间窗口的count
  7. 服务器文档读取不了,服务器读取不到内存
  8. 电脑安装python-如何安装python
  9. 使用linux内核,打造自己的linux
  10. Windows Server 2019 安装应用商店
  11. 如何写出一篇高质量的数据分析报告?
  12. Mysql添加报错 MySqlException: Incorrect string value: ‘\xE5\xAF\xBC\xE5\x85\xA5...‘ for
  13. 安徽大学计算机复试刷人比例,658人进复试刷掉564多人!盘点21复试比奇高、刷人狠的院校专业...
  14. LeetCode-183. 从不订购的客户( Customers Who Never Order)。
  15. Apple iBeacons
  16. orc识别较慢_提高OCR识别效率的诀窍
  17. C/C++基础查漏补缺(八)----------寒假学习笔记(八)
  18. 禅意茶艺茶道茶文化PPT模板
  19. Lucas定理与大组合数的取模的求法总结
  20. 学好UG编程之后,为什么要学习自己制作UG后处理?

热门文章

  1. volatile保证可见性的验证
  2. Python3 - pillow的基本用法(第三天)
  3. 如何将webp批量转换jpg?
  4. 渗透测试之信息收集 -tryhackme-Content Discovery
  5. 检测xposed框架实现
  6. 计算机无法登陆账户 让注销,电脑开机出现登陆账户,点了以后就马上注销,怎么处理?...
  7. 大学python难不难_“大学四年怎么过?”其实是有答案的
  8. Linux网络服务之DNS正向解析
  9. Google Maps谷歌地图车辆位置描点、位置详情查看
  10. 考研计算机考点精讲课程笔记新东方,新东方词汇笔记非常完整版