我的基于scrapy的webcrawler不适用于西尔斯网站

时间:2016-08-13 02:00:06

标签: python xpath scrapy web-crawler

我写过一些似乎适用于其他网站的蜘蛛。这个一直给我带来麻烦。 这是我的蜘蛛代码。

from sears.items import SwatchcolorItem

class SattySpider(scrapy.Spider):
    name = "searsfaucet"
    allowed_domains = ["sears.com"]
    start_urls = [
        "http://www.sears.com/search=faucets?catalogId=12605&storeId=10153&levels=Home%20Improvement"
    ]

    rules = (
        Rule(LinkExtractor(allow='sears\.com/[A-Z][a-zA-Z_/]+$'),
            'parse_category', follow=True,
        ),
    )


    def parse(self, response):
        print 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
        #for sel in response.xpath('//li[@class="product-wrapper grid-25 tablet-grid-33 v-spacing-large"]'):
        #for sel in response.xpath('//div[@ng-app="searchApp"]//div[@id="content"]//div[@ng-switch="resultTemplate"]'):
        for sel in response.xpath('//div[@ng-app="searchApp"]//div[@id="content"]'):
            print sel
            prod= sel.xpath('.//div[@ng-switch="resultTemplate"]')
            print prod
            produrls = sel.xpath('.//@data-producturl').extract()
            urls = sel.xpath('.//@data-productimg').extract()

            #prod_url_det = response.urljoin(produrl.extract())

即使我的scrapy shell似乎也没有返回结果。

此xpath似乎返回结果:

response.xpath('//div[@ng-app="searchApp"]//div[@id="content"]')

但是,以下不是:

response.xpath('//div[@ng-app="searchApp"]//div[@id="content"]//div[@ng-switch="resultTemplate"]')

response.xpath('//div[@ng-app="searchApp"]//div[@id="content"]//div[@class="ng-scope"]')

看起来非常直截了当。不确定我错过了什么。

0 个答案:

没有答案