Ich weiß, dies ist eine neue Frage, und es ist eine grundlegende Python-Frage, aber es ist im Rahmen von Scrapy und ich kann die Antwort nirgendwo finden.In einem Scrapy Bot, wie rufe ich eine Funktion aus einer anderen heraus?
Wenn ich diesen Bot Code ausführen:
import scrapy
from tutorial.items import DmozItem
class DmozSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = ["lib-web.org"]
start_urls = [
"http://www.lib-web.org/united-states/public-libraries/michigan/"
]
count = 0
def increment(self):
global count
count += 1
def getCount(self):
global count
return count
def parse(self, response):
increment()
for sel in response.xpath('//div/div/div/ul/li'):
item = DmozItem()
item['title'] = sel.xpath('a/text()').extract()
item['link'] = sel.xpath('a/@href').extract()
item['desc'] = sel.xpath('p/text()').extract()
x = getCount()
print x
yield item
DmozItem:
import scrapy
class DmozItem(scrapy.Item):
title = scrapy.Field()
link = scrapy.Field()
desc = scrapy.Field()
ich diesen Fehler:
File "/Users/Admin/scpy_projs/tutorial/tutorial/spiders/dmoz_spider.py", line 23, in parse
increment()
NameError: global name 'increment' is not defined
Warum kann ich nicht increment()
anrufen aus parse(self, response)
? Wie kann ich das schaffen?
Danke für jede Hilfe.
Ich muss auf __init__ und selbst nachlesen. Danke für die Richtung. Es ist was ich brauchte. – ryan71