win 10 proの下でdockerとscrapy-splashを構成する方法

5146 ワード

docker
1:公式サイトにアクセスしてdockerをダウンロードしてインストールする:https://www.docker.com/(PS:dockerを実行するのはメモリが多い)2:インストール中に再起動する必要があり、その後は国内ミラーソース3.右クリック右下のDocker Desktopアイコン->settings->Deamonを配置し、「Registry mirrors:」にミラーアクセラレータアドレスを入力します.ここでは、アリクラウドを例に挙げます.アカウントを作成してログインする->製品とサービス->コンテナミラーサービス->ミラーアクセラレータ->アクセラレータアドレス:https://xxxxxxxx.mirror.aliyuncs.com アクセラレータアドレスを上記の「Registry mirrors」テキストボックスにコピーし、Applyをクリックし、dockerのロードが完了するのを待つ.dockerは国内のミラーソース4を構成した.cmdコマンドラインで「docker pull scrapinghub/splash」と入力することでsplashミラーを取得できますが、右下のDocker Desktopアイコン->settings->Network->DNS Serverを右クリックし、Fixed:8.8.8.8をチェックしてください.これで、dockerはやっと構成されました
scrapy-splash
コマンドラインインタフェースに入るstep.1:「docker pull scrapinghub/splash」と入力し、ダウンロード完了を待つstep.2:「docker run-p 8050:8050 scrapinghub/splash」と入力し、このインタフェースをバックグラウンドに掛ける
jsダイナミックレンダリングが必要なWebページを登る
ソースではなくレンダリングされたWebページの内容を出力できるかどうかを確認します.PyCharmにscrapy-splashパッケージ(File->settings->Project:pro_name->Project Interpreterを導入するのを忘れないでください.右の「+」をクリックして「scrapy-splash」を検索し、下の「Install Package」をクリックします.)をクリックしてパッケージをインポートした後、scrapy_を使用します.splash.SplashRequest()jsでレンダリングされたWebページコードを取得します.ここでは、私のscrapyプロジェクトを例に挙げます.
spid. py
import scrapy
from scrapy_splash import SplashRequest

class SpidSpider(scrapy.Spider):
    name = 'spid'
    allowed_domains = ['google.com']
    start_urls = ['https://www.google.com/']

    def start_requests(self):
        url ='https://www.google.com/'
        yield SplashRequest(url,callback=self.parse,args={'wait': 0.5},dont_filter=True)

特に注意!!!
最後の行のパラメータの1つは非常に霊的ですargs={'wait': 0.5}このパラメータがなければ、ページはレンダリングに間に合わないかもしれませんが、jsでレンダリングされていない初期ページコードを返します.みんな私と同じようにこの穴を踏まないでください...
settings. py
SPLASH_URL = 'http://localhost:8050'#  splash     

DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'

HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'

SPIDER_MIDDLEWARES = {
'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}

DOWNLOADER_MIDDLEWARES = {
    #  splash middleware
    'scrapy_splash.SplashCookiesMiddleware': 723,
    'scrapy_splash.SplashMiddleware': 725,
    'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}

Terminal:
scrapy crawl spid -s JOBDIR=crawls/spid-1	

結果:成功
PS:どのように科学的にインターネットを利用して、私の前の1篇の文章は書きました~