2017-10-16 62 views
0
import requests 
import win32api 
import scrapy 
from scrapy.spider import BaseSpider 
from scrapy.selector import HtmlXPathSelector 
from scrapy.http import Request 
from array import * 
import itertools 
import numpy 


class firstSpider(BaseSpider): 
    name = "vdfgedu" 
    allowed_domains = ["de.vdfg.edu"] 
    start_urls = ["https://de.vdfg.edu/nephrology/node/1608"] 
    globalarray = [] 
    def parse(self, response): 
    #find all the hrefs first 
     depts_with_info = [] 
     for dept_info in response.css('div.pane-content'): 
       depts = {} 
       links = dept_info.css('table.views-table tbody tr.viewsrow-first td a::attr(href)').extract() 
       for link in links: 
         yield scrapy.Request("https://de.vdfg.edu"+link, callback = self.title_info) 
         yield scrapy.Request("https://de.vdfg.edu"+link+"#group-tabs-node-course-default3", callback = self.venue_info) 
       def title_info(self, response): 
        titleinfo = {} 
        titleinfo['title'] = response.css('div.field-item h1::text').extract() 
        titleinfo['cmepoints'] = response.css('div.item-list ul.course-credit-list li span::text').extract()[0].strip() 
        self.globalarray.append(titleinfo) 
       def venue_info(self, response): 
        venueinfo = {} 
        venueinfo['venue'] = response.css('div.adr span::text').extract() 
        self.globalarray.append(venueinfo) 

我想附加值到一个全局数组,并从上面两个不同的方法进入到各自的hrefs excel表单..如何声明全局数组? 我们可以从多个解析方法中追加值吗?如何将值附加到全局数组从不同的解析方法中提取值?

回答

0

您可以创建数据类成员,它可以用作类中所有方法的全局值。 class firstSpider(BaseSpider): def __intit__(self): self.globalarray = []

+0

然后我越来越没有错误,但除了这一点:ScrapyDeprecationWarning:mayoclinic.spiders.mayos.firstSpider从过时的类继承scrapy.spiders.BaseSpider,请从scrapy.spiders.Spider继承。 (仅在第一个子类中警告,可能有其他类) class firstSpider(BaseSpider): –