Scrapy Selenium无法进行Request()回调

Scrapy Selenium无法进行Request()回调,selenium,web-scraping,scrapy,Selenium,Web Scraping,Scrapy,如果所有内容都在同一个函数中,Scrapy和Selenium就很好了,但是因为我需要在解析函数中添加更多的代码,所以我想将Scrapy部分拆分为单独的函数parse_data(),并使用Request(),但回调根本不起作用 class MySpider(Spider): name = "myspider" start_urls = ["http://example.com/Data.aspx",] def __init__(self, *args, **kwargs)

如果所有内容都在同一个函数中,Scrapy和Selenium就很好了,但是因为我需要在解析函数中添加更多的代码,所以我想将Scrapy部分拆分为单独的函数
parse_data()
,并使用Request(),但回调根本不起作用

class MySpider(Spider):
    name = "myspider"
    start_urls = ["http://example.com/Data.aspx",]

    def __init__(self, *args, **kwargs):
        super(MySpider, self).__init__(*args, **kwargs)
        self.driver = webdriver.Firefox()
        dispatcher.connect(self.spider_closed, signals.spider_closed)

    def spider_closed(self, spider):
        self.driver.close()

    def parse(self, response):
        item = MyItem()
        self.driver.get(response.url)
        sel = Selector(response)

        buttons = len(self.driver.find_elements_by_xpath("//input[@class='buttonRowDetails']"))

        for x in range(buttons): 
            time.sleep(5)
            button = self.driver.find_elements_by_xpath("//input[@class='buttonRowDetails']")[x]
            button.click()
            time.sleep(5)

            response = TextResponse(url=self.driver.current_url, body=self.driver.page_source, encoding='utf-8')
            print '\n\n\nHELLO FROM PARSE'

            yield Request(response.url, meta={'item': item}, callback=self.parse_data)

    def parse_data(self, response):

        item = response.meta['item']
        print '\n\nHELLO FROM PARSE_DATA'

猜测您的请求已被过滤,因为它指向相同的URL(默认情况下会打开一个重复的请求过滤中间件)

使用
dont\u filter
参数关闭过滤:

yield Request(response.url, 
              meta={'item': item}, 
              callback=self.parse_data, 
              dont_filter=True)