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。 –