Scrapy + phantomjs + selenium引发NotImplementedError

时间:2016-07-06 10:39:02

标签: javascript selenium selenium-webdriver scrapy phantomjs

我正在尝试用一些javascript元素抓取一个页面,我已经做了这个,它有一部分可以通过302(我测试过它并且工作正常):

class bllanguage(scrapy.Spider):
    handle_httpstatus_list = [302]
    name = "bllanguage"
    allowed_domains = ["http://explore.com/"]
    start_urls = [
    'http://explore.com/this-other-url'
    ]

    def __init__(self):
            driver = webdriver.PhantomJS(executable_path='/usr/local/bin/phantomjs')


    def start_requests(self):
        for u in self.start_urls:
            r = scrapy.Request(url = u, dont_filter=True, callback=self.parse)
            r.meta['dont_redirect'] = True
            yield r

        def parse(self, response):
                driver.get(response.url)
                print response.url

它给了我这个错误:

  

追踪(最近一次通话):         文件“/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”,行   577,在_runCallbacks中           current.result = callback(current.result,* args,** kw)         文件“/usr/lib/pymodules/python2.7/scrapy/spiders/init.py”,第76行,解析           引发NotImplementedError       NotImplementedError

我无法理解我犯的错误,如果有人能给我一个提示,那就太棒了。

编辑: 正如@paul trmbrth所说,我必须在“def start_requests”的缩进中加入“def parse”。但现在我有了这个:

  

第30行,在解析中       driver.get(response.url)   NameError:未定义全局名称'driver'

但是我在def _ init _ 中定义了它:为什么?

0 个答案:

没有答案