我需要废弃一个由 Javascript 生成的网页。href 是这样的:
<a href="javascript:__doPostBack('pager','4')" style="margin-right:5px;">[4]</a>
我用scrapy写了一个WebkitDownloader,它可以工作。
class WebkitDownloader( object ):
def process_request( self, request, spider ):
if spider.name in settings.WEBKIT_DOWNLOADER:
if( type(request) is not FormRequest ):
print '===================Processing non-FormRequest=================='
webview = webkit.WebView()
webview.connect( 'load-finished', lambda v,f: gtk.main_quit() )
webview.load_uri( request.url )
gtk.main()
js = jswebkit.JSContext( webview.get_main_frame().get_global_context() )
renderedBody = str( js.EvaluateScript( 'document.documentElement.innerHTML' ) )
#print renderedBody
return HtmlResponse( request.url, body=renderedBody )
我仍然不知道如何WebkitDownloader
在我的蜘蛛解析模块中发送请求。我可以使用这样的东西:request.append('javascript:__doPostBack('pager','4')')
并将 Javascript 请求发送到 WebkitDownloader 吗?或者如何构建 Javascript 请求?