2017-10-16 65 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): –