ホームページ >バックエンド開発 >Python チュートリアル >Python Web クローラーを使用して、現在映画館で上映されている映画を確認する

Python Web クローラーを使用して、現在映画館で上映されている映画を確認する

Go语言进阶学习
Go语言进阶学习転載
2023-07-25 17:21:571958ブラウズ

/1 前書き/

## Maoyan Movies は、淘宝網が共同で最も包括的な映画カテゴリーを作成するためのプラットフォームです。最新の映画がオンラインに公開されたら、できるだけ早くユーザーに知らせます。今日は、Maoyan Movies から今後の映画の詳細を取得する方法を説明します。

Python Web クローラーを使用して、現在映画館で上映されている映画を確認する

#/ 2 プロジェクトの目標/

Maoyan Movies から今後の映画の詳細を入手します。


/3 プロジェクトの準備/ ソフトウェア:

PyCharm

必要なライブラリ:

requests

lxmlランダム時間

プラグイン:Xpath

#Web サイトは次のとおりです。次のとおりです:

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

次のページのボタンをクリックして、Web サイトの次の変更を確認してください:

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 ループを使用して URL を走査し、複数の URL リクエストを実装します。

#/4 プロジェクトの実装/

1. object を継承するクラス class を定義し、self を継承する init メソッド、self を継承する main 関数 main を定義します。必要なライブラリと URL をインポートします。コードは次のとおりです。

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 Web クローラーを使用して、現在映画館で上映されている映画を確認する


#2. プログラムを実行すると、結果がコンソールに表示されます。 、以下に示すように。

Python Web クローラーを使用して、現在映画館で上映されている映画を確認する


3. 青色のダウンロード リンクをクリックして、オンラインで詳細を表示します。

Python Web クローラーを使用して、現在映画館で上映されている映画を確認する


#/6 概要/

1. あまりにも多くのデータを取得すると、サーバーに負荷がかかりやすくなるためお勧めできません。

2. この記事は Python Web クローラーに基づいており、クローラー ライブラリを使用して Maoyan ムービーをクロールします。

以上がPython Web クローラーを使用して、現在映画館で上映されている映画を確認するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はGo语言进阶学习で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。