私はこの質問の他のバージョンを読んだことを約束しましたが、自分の状況に関連するものを見つけることができませんでした。 1つがあれば、私はお詫びします、私は今これを数時間見てきました。Python - グローバル名が定義されていません
私はこれをたくさん手伝ってきましたが、実際には1つのバージョンで結果が得られました。
'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'? –