Я обещаю, что прочитал другие варианты этого вопроса, но мне не удалось найти подходящую для моей ситуации. Если есть, я извиняюсь, я смотрю на это уже несколько часов.Python - глобальное имя не определено
Я много играл с этим и получил результаты по одной версии, так что знайте, что все близко.
Переменная 'start_URLs' определяется как список до функции, но по какой-либо причине не регистрируется на уровне глобального/модуля.
Вот точная ошибка: для listing_url_list в start_urls: NameError: глобальное имя 'start_urls' не определен
import time
import scrapy
from scrapy.http import Request
from scrapy.selector import Selector
from scrapy.spiders import CrawlSpider, Rule
from scraper1.items import scraper1Item
from scraper1 import csvmodule
absolute_pos = './/*[@id="xpath"]/td/@class'
class spider1(CrawlSpider):
name = 'ugh'
allowed_domains = ["ugh.com"]
start_urls = [
"http://www.website.link.1",
"http://www.website.link.2",
"http://www.website.link.3"
]
def parse(self, response):
Select = Selector(response)
listing_url_list = Select.xpath('.//*[@id="xpath"]/li/div/a/@href').extract()
for listing_url_list in start_urls:
yield scrapy.Request(listing_url, callback=self.parselisting, dont_filter=True)
def parselisting(self, response):
ResultsDict = scraper1Item()
Select = Selector(response)
ResultsDict['absolute_pos'] = Select.xpath(absolute_pos).extract()
ResultsDict['listing_url'] = response.url
return ResultsDict
'self.start_urls'? –