0
我想使用Scrapy和Splash抓取包含JavaScript的頁面。使用Scrapy + 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
,它返回的HTML文件,該文件還包括<script type = text/javascript> JS_FUNCTIONS(generate html content) </script>
,並且不包含HTML內容的,應當由JS_FUNCTIONS產生。
如何獲取包含由javascript生成的內容的html文件?
謝謝。
的代碼看起來是正確的;我認爲有兩個可能的原因不能按預期工作:scrapy-splash配置不當(有很多步驟),或者Splash在渲染頁面時遇到一些麻煩。我建議檢查Splash是否首先正確渲染頁面:轉到http:// <你的濺水地址>:,在那裏輸入你的URL並檢查它是否呈現OK。 –