首頁  >  文章  >  後端開發  >  用Python網路爬蟲來看看最近電影院有哪些上映的電影

用Python網路爬蟲來看看最近電影院有哪些上映的電影

Go语言进阶学习
Go语言进阶学习轉載
2023-07-25 17:21:571826瀏覽

/1 前言/

#    貓眼電影是淘寶共同打造電影分類最完整的電影的平台,能夠第一時間告知用戶,最新的電影上線時間。今天教大家獲取貓眼電影的即將上映的電影詳情。

用Python網路爬蟲來看看最近電影院有哪些上映的電影

/2 專案目標/

    取得貓眼電影的即將上映的電影詳情。

#/3 專案準備/

軟體:

PyCharm

#需要的函式庫:requestslxmlrandom

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循環遍歷這網址,實現多個網址請求。

#/4 專案實作/#/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、點選綠色小三角執行輸入起始頁,終止頁。

用Python網路爬蟲來看看最近電影院有哪些上映的電影


#2、執行程式後,結果顯示在控制台,如下圖所示。

用Python網路爬蟲來看看最近電影院有哪些上映的電影


#3、點擊藍色下載連結, 網路查看詳情。

用Python網路爬蟲來看看最近電影院有哪些上映的電影


/6 小結/

1、不建議抓取太多數據,容易對伺服器造成負載,淺嚐輒止即可。

2、本文基於Python網路爬蟲,利用爬蟲庫,實作爬取貓眼電影。

以上是用Python網路爬蟲來看看最近電影院有哪些上映的電影的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:Go语言进阶学习。如有侵權,請聯絡admin@php.cn刪除