听说电影院开业了?Python爬虫看看最近电影院都有哪些上映的电影

/1 前言/

    受疫情的影响,很多电影院现在都倒闭关门。最近好像听说电影院要开工了,快来看一看最近有什么刚上映的电影 !

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

/2 项目目标/

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

/3 项目准备/

软件:PyCharm

需要的库:requestslxmlrandom、time

插件:Xpath

网站如下:

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

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

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

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

/4 项目实现/

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

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
import requestsfrom lxml import etreeimport timeimport randomclass MaoyanSpider(object):    def __init__(self):      self.url = "https://maoyan.com/films?showType=2&offset={}"    def main(self):        passif __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、点击蓝色下载链接, 网络查看详情。

源码获取私信小编01

猜你喜欢

转载自blog.csdn.net/weixin_43881394/article/details/107611530
今日推荐