07_scrapy アプリケーション - ムービーデータの取得 (静的ページのスクレイピー クローラー データを Excel 経由で保存するためのテンプレート/データベース経由で保存)

0. 序文:

  • 一般に、自分で作成する一部の Python プロジェクトでは、依存関係とも呼ばれる多くのパッケージがダウンロードされる仮想環境を作成する必要があります。しかし、プロジェクトを他の人と共有する場合、仮想環境をパッケージ化して他の人に送信することはできません。各人のコンピュータ システムは異なるためです。依存関係を依存関係リストとしてエクスポートし、他の人が私たちの依存関係リストを持っているので、それらを使用できます。コマンド Python プロジェクトを迅速に実行してデプロイできるように、依存関係をプロジェクト環境にダウンロードします。
  • ターミナルで依存関係リストを生成する手順: pip フリーズ > 要件.txt
  • 他の人の依存関係リストを使用して、他の人の依存関係リストのコマンドをインポートします: pip install -r required.txt (注: このコマンドを実行するときは、他の人の依存関係リストをプロジェクト パスに入れる必要があります)。
  • このプロジェクトのコードと依存関係リストはパッケージ化され、一緒にアップロードされます

1. プロジェクトの概要:

ここに画像の説明を挿入


2. プロジェクトを作成します。

  • Scrapyは前提プロジェクト環境にダウンロードされています
  • ターミナルで作成コマンドを実行します:scrapy startproject get_news (注: get_news はプロジェクト名です)
  • コマンドを実行して、ターミナルでプロジェクト ディレクトリに切り替えます: cd get_news
  • コマンドを実行して、ターミナルのプロジェクトにクローラー Python ファイルを作成します:scrapy genspider クローラー名 クロール ページ URL

3. コード:

  • クローラーPythonファイルのコード
# -*- coding: utf-8 -*-
import scrapy
from scrapy import Selector, Request

from ..items import GetNewsItem


class SpiderNewsSpider(scrapy.Spider):
    name = "spider_news"
    allowed_domains = ["movie.douban.com"]
    # start_urls = ['http://movie.douban.com/top250'] # 被下面的start_requests函数替代
    
    # start_requests里面放的是所有要爬取页面的url
    def start_requests(self):
        for i in range(10):
            # scrapy中的Request模块就是发送你要爬取的请求url的,但是请区分它不是第三方库Request
            yield Request(url=f'https://movie.douban.com/top250?start={
     
      
      i * 25}&filter=')

    def parse(self, response):
        # pass
        response_s = Selector(response)
        # 先获取页面电影数据列表
        li_list = response_s.css('#conte

おすすめ

転載: blog.csdn.net/sz1125218970/article/details/131176397