다른 버전의이 질문을 읽었지만 내 상황과 관련있는 것을 찾을 수 없었습니다. 하나 있다면 사과 드리며 지금은 몇 시간 동안 꼼짝 않고 지켜보고 있습니다.파이썬 - 글로벌 이름이 정의되지 않았습니다
나는이 많은 것을 가지고 놀았고 실제로 한 버전에서 결과를 얻었습니다.
'start_URLs'변수는 함수보다 먼저 목록으로 정의되어 있지만 어떤 이유로 글로벌/모듈 수준에 등록되지 않습니다.
여기에 정확한 오류입니다 : start_urls에 listing_url_list을 위해 : 나가서 설명하자면 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'? –