python 的一段代码解释

2016-07-15 16:08:46 +08:00
 xinali
def check_spider_middleware(method):
@functools.wraps(method)
def wrapper(self, request, spider):
    msg = '%%s %s middleware step' % (self.__class__.__name__,)
    if self.__class__ in spider.middleware:
        spider.log(msg % 'executing', level=log.DEBUG)
        return method(self, request, spider)
    else:
        spider.log(msg % 'skipping', level=log.DEBUG)
        return None

return wrapper

代码的出处

主要是这里没看懂,函数可以这么定义吗


def check_spider_middleware(method):
@functools.wraps(method)
def wrapper(self, request, spider):

这段代码的上面还有一段这个代码


class JsDownload(object):

@check_spider_middleware
def process_request(self, request, spider):
    driver = webdriver.PhantomJS(executable_path='D:\phantomjs.exe')
    driver.get(request.url)
    return HtmlResponse(request.url, encoding='utf-8', body=driver.page_source.encode('utf-8'))
    
3132 次点击
所在节点    Python
4 条回复
alioth310
2016-07-15 16:10:51 +08:00
缩进丢了
deanguqiang
2016-07-15 16:14:53 +08:00
搜索 装饰器
raycool
2016-07-15 16:17:48 +08:00
quxw
2016-07-15 16:35:42 +08:00
见 1 , 2 楼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/292718

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX