使用 scrapy-splash 选择元素并在之后截图

Selecting elements with scrapy-splash and screenshot after

在使用 scrapy-splash 时,我试图进入下拉列表,在这种情况下 select "Vanilla"。从下拉列表中 selecting 后,我需要截取我当前正在使用的屏幕截图。这是我目前所拥有的。

class TestSpider(scrapy.Spider):
    name = 'test'

    def start_requests(self):
        splash_args = {
            'png': 1,
            'render_all': 1,
            'wait': 2,
        }
        url = 'https://developer.mozilla.org/en-US/docs/Web/Events/change'

        yield SplashRequest(
            url,
            endpoint='render.html',
            args=splash_args
        )
        yield scrapy.Request(
            f"http://192.168.99.100:8050//render.png?url={url}&wait=2&render_all=1",
            self.parse_request,
        )

    def parse_request(self, response):
        with open('request.png', 'wb') as f:
            f.write(response.body)

您可以通过 js_source 参数将 js 脚本传递给 splash_args 中的 运行。在你的情况下,你可能想做这样的事情:

splash_args = {
   'png': 1,
   'render_all': 1,
   'wait': 2,
   'js_source': 'document.getElementById("mySelect").value = "Vanilla";'
}