用Python网络爬虫来看看最近电影院都有哪些上映的电影

开发 后端
猫眼电影是淘宝联合打造电影分类最全的电影的平台,能够第一时间告知用户,最新的电影上线时间。今天教大家获取猫眼电影的即将上映的电影详情。

1 前言

猫眼电影是淘宝联合打造电影分类最全的电影的平台,能够第一时间告知用户,最新的电影上线时间。今天教大家获取猫眼电影的即将上映的电影详情。

2 项目目标

获取猫眼电影的即将上映的电影详情。

3 项目准备

软件:PyCharm

需要的库:requests、lxml、random、time

插件:Xpath

网站如下: 

  1. https://maoyan.com/films?showType=2&offset={} 

点击下一页的按钮,观察到网站的变化分别如下: 

  1. https://maoyan.com/films?showType=2&offset=30  
  2. https://maoyan.com/films?showType=2&offset=60  
  3. https://maoyan.com/films?showType=2&offset=90 

点击下一页时,页面每增加一页offset=()每次增加30,所以可以用{}代替变换的变量,再用for循环遍历这网址,实现多个网址请求。

4 项目实现

1、定义一个class类继承object,定义init方法继承self,主函数main继承self。导入需要的库和网址,代码如下所示。 

  1. import requests  
  2. from lxml import etree  
  3. import time  
  4. import random  
  5. class MaoyanSpider(object):  
  6.     def __init__(self):  
  7.       self.url = "https://maoyan.com/films?showType=2&offset={}"  
  8.     def main(self):  
  9.         pass  
  10. if __name__ == '__main__':  
  11.     spider = MaoyanSpider()  
  12.     spider.main() 

2、随机产生UserAgent。 

  1. for i in range(1, 50):  
  2.    # ua.random,一定要写在这里,每次请求都会随机选择。  
  3.        self.headers = { 
  4.             'User-Agent': ua.random,  
  5.        } 

3、发送请求,获取页面响应。 

  1. def get_page(self, url):  
  2.   # random.choice一定要写在这里,每次请求都会随机选择  
  3.   res = requests.get(url, headers=self.headers)  
  4.   res.encoding = 'utf-8' 
  5.   html = res.text  
  6.   self.parse_page(html) 

4、xpath解析一级页面数据,获取页面信息。

1)基准xpath节点对象列表。 

  1. #  创建解析对象  
  2. parse_html = etree.HTML(html)  
  3. # 基准xpath节点对象列表  
  4. dd_list = parse_html.xpath('//dl[@class="movie-list"]//dd') 

2)依次遍历每个节点对象,提取数据。 

  1. for dd in dd_list:  
  2.    name = dd.xpath('.//div[@class="movie-hover-title"]//span[@class="name noscore"]/text()')[0].strip()  
  3.    star = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][3]/text()')[1].strip()  
  4.    type = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][2]/text()')[1].strip()  
  5.    dowld=dd.xpath('.//div[@class="movie-item-hover"]/a/@href')[0].strip()  
  6.    # print(movie_dict)  
  7.    movie = '''【即将上映】 

5、定义movie,保存打印数据。 

  1.  movie = '''【即将上映】         
  2.  电影名字: %s  
  3. 主演:%s  
  4. 类型:%s  
  5. 详情链接:https://maoyan.com%s  
  6. =========================================================  
  7.                                    ''' % (name, star, type,dowld)  
  8. print( movie) 

6、random.randint()方法,设置时间延时。 

  1. time.sleep(random.randint(1, 3)) 

7、调用方法,实现功能。 

  1. html = self.get_page(url)  
  2. self.parse_page(html) 

5 效果展示

1、点击绿色小三角运行输入起始页,终止页。

2、运行程序后,结果显示在控制台,如下图所示。

3、点击蓝色下载链接, 网络查看详情。

6 小结

1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。

2、本文基于Python网络爬虫,利用爬虫库,实现爬取猫眼电影。

3、欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

4、猫眼电影代码链接:,https://github.com/cassieeric/python_crawler/tree/master/MaoyanMovie,觉得不错,记得给个star噢。 

 

责任编辑:庞桂玉 来源: Python编程
相关推荐

2015-03-11 11:07:52

无线网络首都电影院信锐技术

2016-12-06 15:54:27

2011-06-06 12:18:27

台式机评测

2011-12-20 14:49:21

投影仪推荐

2011-07-18 22:03:59

投影机用户体验

2012-02-03 16:48:39

投影仪推荐

2021-01-06 17:45:01

VRARVR影院

2011-07-14 22:43:33

2024-05-24 08:35:00

Angular 18版本更新

2018-01-16 18:43:18

爬虫工具电影天堂

2012-01-09 19:35:33

台式机用户体验

2023-10-20 10:11:00

Nuxt 3.8前端

2018-12-05 13:59:45

电影分析爬虫

2013-04-03 14:25:36

网易邮箱

2009-03-05 10:54:33

2011-04-28 12:53:29

3D眼镜3D家庭影院

2017-08-09 09:19:30

2023-12-08 11:22:31

IT首席转型官转型
点赞
收藏

51CTO技术栈公众号