2017-10-16 6 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) 

グローバル配列に値を追加し、上の2つの異なるメソッドからそれぞれのhrefをExcelシートに追加したいと思います。どのようにグローバル配列を宣言しますか? 複数の構文解析メソッドからのvaulesを追加できますか?グローバル配列に値を追加するにはどうすればよいでしょうか?

答えて

0

クラスのすべてのメソッドでグローバル値として使用できるデータクラスメンバーを作成できます。 class firstSpider(BaseSpider): def __intit__(self): self.globalarray = []

+0

はその後、私はエラーを取得していないが、これを除いています:ScrapyDeprecationWarning:mayoclinic.spiders.mayos.firstSpiderは非推奨クラスscrapy.spiders.BaseSpiderから継承し、scrapy.spiders.Spiderから継承してください。 (最初のサブクラスでのみ警告する、他のものがあるかもしれない) class firstSpider(BaseSpider): –

関連する問題