0
ScrapyとSplashを使用してJavaScriptを含むページをクロールしたいとします。Scream + SplashでJavascriptを実行した後にHTMLファイルを取得
ページでは、<script type = text/javascript> JS_FUNCTIONS(generate html content) </script>
が存在するため、以下のようにJS_FUNCTIONSを実行した後にhtmlファイルを取得しようとしました。
import scrapy
from scrapy_splash import SplashRequest
class FooSpider(scrapy.Spider):
name = 'foo'
start_urls = ["http://foo.com"]
def start_requests(self):
for url in self.start_urls:
yield SplashRequest(url, self.parse, args={'wait': 0.5})
def parse(self, response):
file_name = response.url.split("//")[-1]
with open(filename, 'wb') as f:
f.write(response.body)
私はコマンドscrapy crawl foo
を実行すると、それはまだ<script type = text/javascript> JS_FUNCTIONS(generate html content) </script>
含むとJS_FUNCTIONSによって生成されるべきHTMLコンテンツが含まれていないHTMLファイルを返します。
javascriptによって生成されたコンテンツを含むhtmlファイルを取得するにはどうすればよいですか?
ありがとうございました。
コードが正しく見えます。私はそれが期待どおりに動作しない2つの理由が考えられます:スプラッシュスプラッシュが不適切に構成されている(かなりのステップがあります)か、スプラッシュにページをレンダリングする際に問題があります。 http:// <お使いのスプラッシュアドレス>:にアクセスしてURLを入力し、レンダリングがOKであることを確認してください。 –