Scrapy没有在patta网站上工作

时间:2018-02-27 18:56:21

标签: python-2.7 scrapy web-crawler scrapy-spider

我试图在patta.nl上使用scrapy-spider来获取最新产品的所有产品并将它们存储到数据库中。

我的显示器中的某些网站正在运行,但像Patta这样的人无法正常工作而且没有向数据库上传任何内容。 这是我的功能:

class PattaSpider(Spider):

name = "PattaSpider"
allowded_domains = ["patta.nl"]
start_urls = [PattaURL]

def __init__(self):
    logging.critical("Patta STARTED.")

def parse(self, response):
    products = Selector(response).xpath('//ul[@class="products-grid EqualRow grid-4-columns label-type-2 top-right first last odd isotope"]')

    for product in products:
        item = PattaItem()
        item['name'] = product.xpath('//h3[@class="product-name"]/a').extract_first()
        item['link'] = product.xpath('//h3[@class="product-name"]/a/@href').extract_first()
        yield item

    yield Request(PattaURL, callback=self.parse, dont_filter=True, priority=3)

有人可以帮我解决这个问题吗?感谢

1 个答案:

答案 0 :(得分:1)

您的代码有几个问题:

  1. 您的products只是一个ul
  2. 您对@class使用了错误的ul(检查来源HTML代码)
  3. 您需要为每个项目使用相对XPath表达式

    products = response.xpath('//ul[contains(@class,"products-grid")]/li')
    
    for product in products:
        item = PattaItem()
        item['name'] = product.xpath('.//h3[@class="product-name"]/a/text()').extract_first()
        item['link'] = product.xpath('.//h3[@class="product-name"]/a/@href').extract_first()
        yield item