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

1 前言

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

2 项目目标

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

3 项目准备

软件:PyCharm

需要的上映库:requests、lxml、用P影院影random、络爬time

插件:Xpath

网站如下: 

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

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

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

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

4 项目实现

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

import requests  from lxml import etree  import time  import random  class MaoyanSpider(object):      def __init__(self):        self.url = "https://maoyan.com/films?showType=2&offset={ }"      def main(self):          pass  if __name__ == __main__:      spider = MaoyanSpider()      spider.main() 

2、随机产生UserAgent。 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5 效果展示

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

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

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

6 小结

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

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

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

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

云南idc服务商
滇ICP备2023000592号-31