0

0

Python3获取大量电影信息

高洛峰

高洛峰

发布时间:2016-10-29 10:44:17

|

2476人浏览过

|

来源于php中文网

原创

实验室这段时间要采集电影的信息,给出了一个很大的数据集,数据集包含了4000多个电影名,需要我写一个爬虫来爬取电影名对应的电影信息。

 其实在实际运作中,根本就不需要爬虫,只需要一点简单的Python基础就可以了。

 前置需求:

Python3语法基础

HTTP网络基础

立即学习Python免费学习笔记(深入)”;

第一步,确定API的提供方。IMDb是最大的电影数据库,与其相对的,有一个OMDb的网站提供了API供使用。这家网站的API非常友好,易于使用。

http://www.omdbapi.com/

第二步,确定网址的格式。

1.png

第三步,了解基本的Requests库的使用方法。

http://cn.python-requests.org/zh_CN/latest/

1.png

为什么我要使用Requests,不使用urllib.request呢?

因为Python的这个库容易出各种各样的奇葩问题,我已经受够了……

 

MuleRun
MuleRun

全球首个AI Agent交易平台

下载

第四步,编写Python代码。

我想做的是,逐行读取文件,然后用该行的电影名去获取电影信息。因为源文件较大,readlines()不能完全读取所有电影名,所以我们逐行读取。

import requests

for line in open("movies.txt"):
    s=line.split('%20\n')
    urll='http://www.omdbapi.com/?t='+s[0]
    result=requests.get(urll)
    if result:
        json=result.text
        print(json)
        p=open('result0.json','a')
        p.write(json)
        p.write('\n')
        p.close()

我预先把电影名文件全部格式化了一遍,将所有的空格替换成了"%20",便于使用API(否则会报错)。这个功能可以用Visual Studio Code完成。

1.png

注意,编码的时候选择GBK编码,不然会出现下面错误:

1 UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence

第五步,做优化和异常处理。

主要做三件事,第一件事,控制API速度,防止被服务器屏蔽;

第二件事,获取API key(甚至使用多个key)

第三件事:异常处理。

import requests 3 
key=[‘’]

for line in open("movies.txt"):
    try:
        #……
    except TimeoutError:
        continue
    except UnicodeEncodeError:
        continue
    except ConnectionError:
        continue

下面贴出完整代码:

# -*- coding: utf-8 -*-

import requests
import time

key=['xxxxx','yyyyy',zzzzz','aaaaa','bbbbb']
i=0

for line in open("movies.txt"):
    try:
        i=(i+1)%5
        s=line.split('%20\n')
        urll='http://www.omdbapi.com/?t='+s[0]+'&apikey='+key[i]
        result=requests.get(urll)
        if result:
            json=result.text
            print(json)
            p=open('result0.json','a')
            p.write(json)
            p.write('\n')
            p.close()
            time.sleep(1)
    except TimeoutError:
        continue
    except UnicodeEncodeError:
        continue
    except ConnectionError:
        continue

接下来喝杯茶,看看自己的程序跑得怎么样吧!

1.png

相关专题

更多
交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

0

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

1

2026.01.13

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

PHP 表单处理与文件上传安全实战
PHP 表单处理与文件上传安全实战

本专题聚焦 PHP 在表单处理与文件上传场景中的实战与安全问题,系统讲解表单数据获取与校验、XSS 与 CSRF 防护、文件类型与大小限制、上传目录安全配置、恶意文件识别以及常见安全漏洞的防范策略。通过贴近真实业务的案例,帮助学习者掌握 安全、规范地处理用户输入与文件上传的完整开发流程。

7

2026.01.13

PPT交互图表教程大全
PPT交互图表教程大全

本专题整合了PPT交互图表相关教程汇总,阅读专题下面的文章了解更多详细内容。

56

2026.01.12

Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

21

2026.01.12

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

135

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

66

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

140

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 3万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号