문자열 : "div.productTitle.Floatleft"
을 사용해야합니다. " "
이제 div
변수를 사용해보십시오.
편집 :는 User-Agent
실행하면 서버에서 HTML을보기 위해 웹 브라우저를 사용할 수있는 쉘에서
scrapy shell http://www.ikea.com/ae/en/catalog/categories/departments/childrens_ikea/31772/
쉘 사용자가 설정해야 정확한 데이터를 얻을 당신이 오류가 발생합니다 메시지.
view(response)
당신은 페이지를 다시 BTW
fetch(response.url, headers={'User-Agent': 'Mozilla/5.0'})
response.css('div.productTitle.floatLeft')
(이전 response
에서 사용 url
) 다른 User-Agent
을 사용하여 얻을 : 그것은 floatLeft
하지 Floatleft
한다 - 낮은 볼 f
상부 L
편집 : 같은 독립형 스크립트로 (필요하지 않습니다 프로젝트) 파일 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