我在windows中使用scrapy编程,我正在输入命令
C:\Users\David>cd c:\python27\natliq
这是我有我的蜘蛛的路径。但是,当我通过运行 crawl 命令对我的蜘蛛进行测试运行时,我收到以下错误。
文件“C:\python27\lib\os.py”,第 157 行,在 makedirs mkdir(name, mode) 中
WindowsError:[错误 123] 文件名、目录名或卷标语法不正确:'c:\python27\natliq'
我没有输入双反斜杠。所以我想我的问题是scrapy或windows从哪里得到这个错误。但是如何解决呢?
仅供参考,我周六测试了我的蜘蛛,它奏效了。现在突然间我面对这个消息并且不知道如何解决。
蜘蛛代码:
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from natliq.items import NatliqItem
from scrapy.http import Request
from scrapy.contrib.pipeline.images import ImagesPipeline
from PIL import Image
class NatliqSpider(CrawlSpider):
name = "natliq"
allowed_domain = [""]
start_urls = [
"http://www.yachtauctions.com/inventory/"
]
rules = (
Rule(
SgmlLinkExtractor(
restrict_xpaths = ('//td/a[3] [@class="inv-link"]'),
attrs = ('href'),
),
follow=True,
callback = 'item_parse',
),
)
def item_parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//div[@class="content-area"]/div[@class="listing"]')
items = []
for site in sites:
item = NatliqItem()
item['price'] = site.select('//table[@class="inv-table"]/tr[1]/td[2]/text()').extract()[0].strip()
item['status'] = site.select('//table[@class="inv-table"]/tr[2]/td[2]/text()').extract()[0].strip()
item['stock_number'] = site.select('//table[@class="inv-table"]/tr[3]/td[2]/text()').extract()[0].strip()
item['vessel_type'] = site.select('//table[@class="inv-table"]/tr[4]/td[2]/text()').extract()[0].strip()
item['year'] = site.select('//table[@class="inv-table"]/tr[5]/td[2]/text()').extract()[0].strip()
item['make'] = site.select('//table[@class="inv-table"]/tr[6]/td[2]/text()').extract()[0].strip()
item['model'] = site.select('//table[@class="inv-table"]/tr[7]/td[2]/text()').extract()[0].strip()
item['description'] = site.select('//table[@class="inv-table"]/tr[11]/td[2]/text()').extract()[0].strip()
item['has_engine'] = site.select('//div[2]/table[@class="inv-table"]/tr[1]/td[2]/text()').extract()[0].strip()
item['numberOfEngines'] = site.select('//div[2]/table[@class="inv-table"]/tr[2]/td[2]/text()').extract()[0].strip()
item['engine_make'] = site.select('//div[2]/table[@class="inv-table"]/tr[4]/td[2]/text()').extract()[0].strip()
item['engine_model'] = site.select('//div[2]/table[@class="inv-table"]/tr[5]/td[2]/text()').extract()[0].strip()
item['fuel_type'] = site.select('//div[2]/table[@class="inv-table"]/tr[6]/td[2]/text()').extract()[0].strip()
item['engine_hp'] = site.select('//div[2]/table[@class="inv-table"]/tr[7]/td[2]/text()').extract()[0].strip()
item['engine_hours'] = site.select('//div[2]/table[@class="inv-table"]/tr[8]/td[2]/text()').extract()[0].strip()
item['location'] = site.select('//div[2]/table[@class="inv-table"]/tr[14]/td[2]/text()').extract()[0].strip()
# item['image_urls'] = ["http://www.yachtauctions.com" + x for x in site.select('//ul[@class="thethumbs"]/li/a/@href').extract()[0].strip()
items.append(item)
return items