文字列:"div.productTitle.Floatleft"
を使用する必要があります。 " "
ここで、変数div
を使用しようとしています。
EDIT:サーバーからHTMLを見るためにWebブラウザを使用することができますし、エラーが表示されますシェルで
scrapy shell http://www.ikea.com/ae/en/catalog/categories/departments/childrens_ikea/31772/
シェルあなたはUser-Agent
実行]を設定する必要があり、正しいデータを取得しますメッセージ。
view(response)
あなたはBTW(前回response
からurl
を使用して)
fetch(response.url, headers={'User-Agent': 'Mozilla/5.0'})
response.css('div.productTitle.floatLeft')
を異なるUser-Agent
を使用して再度ページを取得:それはfloatLeft
、ないFloatleft
なければならない -
f
下限と上限
L
を見ます
EDIT:同じスタンドアロンスクリプトとして(必要としないプロジェクト)ファイルoutput.csvで
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
#allowed_domains = ['http://www.ikea.com']
start_urls = ['http://www.ikea.com/ae/en/catalog/categories/departments/childrens_ikea/31772/']
def parse(self, response):
print('url:', response.url)
all_products = response.css('div.product')
for product in all_products:
title = product.css('div.productTitle.floatLeft ::text').extract()
description = product.css('div.productDesp ::text').extract()
price = product.css('div.price.regularPrice ::text').extract()
price = price[0].strip()
print('item:', title, description, price)
yield {'title': title, 'description': description, 'price': price}
# --- it runs without project and saves in 'output.csv' ---
from scrapy.crawler import CrawlerProcess
c = CrawlerProcess({
'USER_AGENT': 'Mozilla/5.0',
'FEED_FORMAT': 'csv',
'FEED_URI': 'output.csv',
})
c.crawl(MySpider)
c.start()
結果: "div.productTitle.Floatleft":あなたは、文字列を使用する必要が
title,description,price
BÖRJA,feeding spoon and baby spoon,Dhs 5.00
BÖRJA,training beaker,Dhs 5.00
KLADD RANDIG,bib,Dhs 9.00
KLADDIG,bib,Dhs 29.00
MATA,4-piece eating set,Dhs 9.00
SMASKA,bowl,Dhs 9.00
SMASKA,plate,Dhs 12.00
SMÅGLI,plate/bowl,Dhs 19.00
STJÄRNBILD,bib,Dhs 19.00
。今では変数 'div'を使用しようとしています – furas