-2
我創造了這個類parse()
方法:Scrapy - 調用蜘蛛從其他腳本
class PitchforkSpider(scrapy.Spider):
name = "pitchfork_reissues"
allowed_domains = ["pitchfork.com"]
#creates objects for each URL listed here
start_urls = [
"http://pitchfork.com/reviews/best/reissues/?page=1",
"http://pitchfork.com/reviews/best/reissues/?page=2",
"http://pitchfork.com/reviews/best/reissues/?page=3",
]
def parse(self, response):
items = []
for sel in response.xpath('//div[@class="album-artist"]'):
item = PitchforkItem()
item['artist'] = sel.xpath('//ul[@class="artist-list"]/li/text()').extract()
item['reissue'] = sel.xpath('//h2[@class="title"]/text()').extract()
items.append(item)
return items
從另一個腳本,我導入module
上述class
屬於其中:
from blogs.spiders.pitchfork_reissues_feed import *
並且實例化class
,我嘗試撥打parse()
方法:
def reissues():
pitchfork_reissues = PitchforkSpider()
albums = pitchfork_reissues.parse(response)
print (albums)
,但我得到了以下錯誤:
reissues = pitchfork_reissues.parse(response)
NameError: global name 'response' is not defined
Aparently,該parse()
方法需要scrapy.http.Response
一個實例。 如何在reissues()
的第二個腳本的上下文中創建這樣的實例?
你如何使用您的第一個腳本中的「PitchforkSpider」類? – njzk2
@ njzk2你是什麼意思?你能否更具體一些? –
你說'從另一個腳本'。我假設你有另一個腳本,成功地使用這個類? – njzk2