scrapy中间件文件结构

scrapy middleware file structure

我正在学习 scrapy 并尝试使用中间件将处理过的 jsp 页面发送到 scrapy crawlspider。在我运行scrapy crawl pccprofile2之后,没有错误或结果returns。我怀疑文件结构不正确。我可能遗漏了一些明显的东西。任何帮助将不胜感激!

我的文件结构是这样的:

My middlewares.py 从目标 page 和 returns 的下拉菜单中选择特定值 url 响应。它包含以下 class:

class JSMiddleware(object):
    def process_request(self, request, spider):
        driver = webdriver.PhantomJS()
        driver.get('http://www.cppcc.gov.cn/CMS/icms/project1/cppcc/wylibary/wjWeiYuanList.jsp')
    more_btn = WebDriverWait(driver, 20).until(
         EC.visibility_of_element_located((By.ID, '_button_select'))
                )
    more_btn.click()

    # select from the dropdown menu
    driver.find_element_by_css_selector("select#tabJcwyxt_jiebie > option[value='teyaoxgrs']").click()
    driver.find_element_by_css_selector("select#tabJcwyxt_jieci > option[value='d11jie']").click()
    search2 = driver.find_element_by_class_name('input_a2')
    search2.click()
    time.sleep(5)

    body = driver.page_source
    print body
    return HtmlResponse(driver.current_url, body=body, encoding='utf-8', request=request)

蜘蛛文件夹中的settings.py和init.py都包含以下几行:

SPIDER_MIDDLEWARES = {
'pccprofile2.middlewares.JSMiddleware': 543,
}
DOWNLOADER_MIDDLEWARES = {
'pccprofile2.middlewares.JSMiddleware': 543,
}

最后,我的 spider_pccprofile2.py 看起来像这样。它点击进入结果的每个项目 table 并保存每个 link 中的信息。之后,它单击 "next page" 并执行相同的操作。

class ProfileSpider(CrawlSpider):
name = 'pccprofile2'
rules = [Rule(SgmlLinkExtractor(allow=(),restrict_xpaths=("//div[@class='table']")), callback='parse_item')]  

def parse_item(self, response):
    hxs = HtmlXPathSelector(response)
    items = []
    item = Ppcprofile2Item()
    item ["name"] = hxs.select("//h1/text()").extract()
    item ["title"] = hxs.select("//div[@id='contentbody']//tr//td//text()").extract()
    items.append(item)

    #click next page      
    while True:
        next = response.findElement(By.linkText("下一页"))
        try:
            next.click()
        except:
            break

    return(items)

如果有明显的遗漏,请告诉我。非常感谢!

文件结构正确。打开查询结果的蜘蛛运行和多个firefox实例。但是,信息不会被删除。这表明问题出在蜘蛛规范将响应 url 传递给蜘蛛时。