python找电影资源_python一键电影搜索与下载

# python一键电影搜索与下载

## 概述

使用python搜索并爬取豆瓣电影信息,包括评分,主演,导演,类型,上映时间,电影简介等信息,然后再从电影天堂搜索并爬取电影下载链接.

![概述](https://raw.githubusercontent.com/WHJWNAVY/myImage/master/PicGo/20181023180750.png)

## 准备工作

### 安装python3.6

### 安装requests库(用于请求静态页面)

```bash

pip install requests -i https://mirrors.ustc.edu.cn/pypi/web/simple

```

### 安装lxml库(用于解析html文件)

```bash

pip install lxml -i https://mirrors.ustc.edu.cn/pypi/web/simple

```

### 本教程爬取的电影信息来自豆瓣电影,下载链接来自电影天堂

```html

https://movie.douban.com/j/subject_suggest?q=电影名称

http://s.ygdy8.com/plus/so.php?keytype=0&pagesize=10&searchtype=title&keyword=电影名称

```

## 页面分析

### 豆瓣电影搜索

豆瓣电影搜索的链接如下:

```html

https://movie.douban.com/j/subject_suggest?q=电影名称

```

只需要一个参数q,它的值是utf-8编码的电影名称,比如我们要搜索 ***星际穿越*** 相关信息, 其中 ***%e6%98%9f%e9%99%85%e7%a9%bf%e8%b6%8a*** 是 ***星际穿越*** 的url格式的utf-8编码.:

```html

https://movie.douban.com/j/subject_suggest?q=%e6%98%9f%e9%99%85%e7%a9%bf%e8%b6%8a

```

服务器返回的搜索结果是一个json文件 ***subject_suggest.json*** ,如下:

```json

[

{

"episode" : "",

"id" : "1889243",

"img" : "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2206088801.jpg",

"sub_title" : "Interstellar",

"title" : "星际穿越",

"type" : "movie",

"url" : "https://movie.douban.com/subject/1889243/?suggest=%E6%98%9F%E9%99%85%E7%A9%BF%E8%B6%8A",

"year" : "2014"

},

{

"episode" : "",

"id" : "26263467",

"img" : "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2445481443.jpg",

"sub_title" : "The Science of Interstellar",

"title" : "《星际穿越》中的科学",

"type" : "movie",

"url" : "https://movie.douban.com/subject/26263467/?suggest=%E6%98%9F%E9%99%85%E7%A9%BF%E8%B6%8A",

"year" : "2014"

},

{

"episode" : "",

"id" : "26255844",

"img" : "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2519643575.jpg",

"sub_title" : "Interstellar: Nolan's Odyssey",

"title" : "星际穿越:诺兰的奥德赛",

"type" : "movie",

"url" : "https://movie.douban.com/subject/26255844/?suggest=%E6%98%9F%E9%99%85%E7%A9%BF%E8%B6%8A",

"year" : "2014"

}

]

```

共搜索到了3个与 ***星际穿越*** 相关的结果,其中我们需要关注的有:

| key | 含义 |

| :-------: | :--------------: |

| title | 标题 |

| sub_title | 子标题(英文标题) |

| url | 详情链接 |

我们需要再次打开搜索结果中对应的电影详情链接,获取电影的评分,导演,主演,类型,上映时间,简介,影评等信息.

比如我们打开搜索结果的第一项,结果如下:

![电影详情页](https://raw.githubusercontent.com/WHJWNAVY/myImage/master/PicGo/20181029112514.png)

我们打开它的源码看看(按F12打开调试):

![](https://raw.githubusercontent.com/WHJWNAVY/myImage/master/PicGo/20181029114712.png)

可以看到其head中的一个标签 *** /html/head/script[@type="application/ld+json"] *** 中存放的是一个json文件,这个json中就包含了我们需要的所有电影信息,提取出来如下:

```json

{

"@context": "http://schema.org",

"name": "星际穿越 Interstellar",

"url": "/subject/1889243/",

"image": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2206088801.jpg",

"director":

[

{

"@type": "Person",

"url": "/celebrity/1054524/",

"name": "克里斯托弗·诺兰 Christopher Nolan"

}

]

,

"author":

[

{

"@type": "Person",

"url": "/celebrity/1275104/",

"name": "乔纳森·诺兰 Jonathan Nolan"

}

,

{

"@type": "Person",

"url": "/celebrity/1054524/",

"name": "克里斯托弗·诺兰 Chris

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值