Я прочесываю несколько предметов от this site, но он захватывает предметы только с первого продукта и не зацикливается дальше. Я знаю, что делаю простую глупую ошибку, но если вы можете просто указать, где я ошибся, я буду признателен.Не удается получить дополнительные товары с URL-адресом
Вот паук:
from scrapy.item import Item, Field
from scrapy.spider import BaseSpider
from scrapy.selector import Selector
import re
from zoomer.items import ZoomerItem
class ZoomSpider(BaseSpider):
name = "zoomSp"
allowed_domains = ["zoomer.ge"]
start_urls = [
"http://zoomer.ge/index.php?cid=35&act=search&category=1&search_type=mobile"
]
def parse(self, response):
sel = Selector(response)
titles = sel.xpath('//div[@class="productContainer"]/div[5]')
items = []
for t in titles:
item = ZoomerItem()
item["brand"] = t.xpath('//div[@class="productListContainer"]/div[3]/text()').re('^([\w, ]+)')
item["price"] = t.xpath('//div[@class="productListContainer"]/div[4]/text()').extract()[0].strip()
item["model"] = t.xpath('//div[@class="productListContainer"]/div[3]/text()').re('\s+(.*)$')[0].strip()
items.append(item)
return(items)
P.S. Также не может получить регулярное выражение для строки «brand», чтобы получить только первое слово «Blackberry» из строки:
«BlackBerry P9981 Porsche Design».
Извинения за изменение; Я ожидал, что он потребует одобрения перед обновлением. :( – Talvalin
@ Talvalin не волнуется, я рад, когда вы исправляете мои ошибки :) Я действительно не знаю, что такое scrapy, так что теперь это не XPath 1.0. Тем не менее, я повторно отредактировал часть о 'string()', поскольку это похоже на XPath 1.0: http://www.w3.org/TR/xpath/#function-string – dirkk
Я должен был также отметить, что я проверил код с помощью scrapy, и я получаю ошибку Invalid XPath, если вместо 'text()' используется 'string()' – Talvalin