0

我需要用 javascript 抓取一个网页,看起来这在http://snipplr.com/view/66996/renderedinteractive-javascript-with-gtkwebkitjswebkit/ 问题中提到的示例中已解决从 Web 代码中提取数据使用 webkit 下载器类. 我知道我需要调用 process_request 函数。我在请求中作为参数传递了什么。我查看了scrapy文档,看看我是否必须传递在scrapy中创建的请求对象,但这不起作用。

另外,我知道蜘蛛对象将作为最后一个参数传入 process_request 。那应该是哪个对象?抱歉,我是 python、scrapy 和 webkit 的新手,所以可能会问一些有明显答案的问题。

4

1 回答 1

2

您无需process_request手动“调用”,只需声明它,引擎将使用所有正确的参数调用它。只需创建一个名为middleware.py(或任何您想调用的文件)并输入:

...
class WebkitDownloader( object ):
    def process_request( self, request, spider ):
        if not isinstance(request, FormRequest):
            webview = webkit.WebView()
            ...

以及所有其余部分,然后在您的 settings.py 文件中输入:

DOWNLOADER_MIDDLEWARES = {
    'mybot.middleware.WebkitDownloader': 1000,
    ...
}

这应该让你的中间件工作。

于 2012-11-03T15:42:31.450 回答