2012-10-28 31 views
0

我需要使用javascript来抓取网页,并且看起来像这样在http://snipplr.com/view/66996/renderedinteractive-javascript-with-gtkwebkitjswebkit/ 的示例中解决了问题Extracting data from Web代码使用webkit下载类。我明白我需要调用process_request函数。请求中传入的参数是什么?我查看了scrapy文档,看看是否必须传递scrapy中创建的请求对象,但这不起作用。如何使用webkit with scrapy

另外,据我所知,spider对象将作为最后一个参数传入process_request。应该是哪个对象?对不起,我是python,scrapy和webkit的新手,所以可能会问一些明显的答案。

回答

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, 
    ... 
} 

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