我需要使用javascript抓取一个网页,看起来在http://snipplr.com/view/66996/renderedinteractive-javascript-with-gtkwebkitjswebkit/的示例中解决了这个问题 提到问题Extracting data from Web代码使用webkit下载器类。我知道我需要调用process_request函数。我在请求中作为参数传递什么。我查看了scrapy文档,看看是否必须传递在scrapy中创建的请求对象,但这不起作用。
另外,我理解蜘蛛对象将作为最后一个参数在process_request中传递。应该是哪个对象?对不起,我是python,scrapy和webkit的新手,所以可能会问questins有明显的答案。
答案 0 :(得分: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,
...
}
这应该让你的中间件工作。