浏览每个类别和产品名称具有不同名称的类别

时间:2018-12-05 09:38:51

标签: web-scraping scrapy scrapy-spider

我正在尝试抓取一个名为https://www.powermaxed.com/的网站的数据。

它的目录结构不是很一致,我不知道下一步该怎么做。

这是我用于抓取的代码:

from scrapy.spiders import CrawlSpider


class MySpider(CrawlSpider):

    name = 'powermaxed'
    start_urls = ['https://www.powermaxed.com/']

    def parse_product(self, response):

        yield {
            'product_title': response.xpath('//div[@class="container"]//div[@class="row"]//div[@id="content"]//h1/text()').extract_first()
            'product_price_w/_tax': response.xpath('//div[@class="container"]//div[@class="row"]//div[@id="content"]//div[@class="row"]//div[@class="product-buy-wrapper"]//ul[@class="list-unstyled pp"]//li//h2//span[@id="formated_price"]/text()').extract_first()
            'product_price_w/o_tax': response.xpath('//div[@class="container"]//div[@class="row"]//div[@id="content"]//div[@class="row"]//div[@class="product-buy-wrapper"]//ul[@class="list-unstyled pp"]//li//span[@id="formated_tax"]/text()').extract_first()
            'product_desc': response.xpath('//div[@id="product-tabs"]//div[@class="tab-content"]//div[@id="tab-description"]//p/text()').extract_first()
            'product_uses': response.xpath('//div[@id="product-tabs"]//div[@class="tab-content"]//div[@id="tab-description"]//ul//li/text()').extract()
        }

提取的数据将是产品信息。

我需要从该网站上的所有目录访问所有产品页面 并提取我在代码中输入的信息。

我抓狂地炮击了该网站,所以我设置了要在蜘蛛上提取的数据。

2 个答案:

答案 0 :(得分:1)

您可以简单地刮掉所有页面,如果有的话退还产品:

sr, x = read('test.mp3', normalized=False)
print(x)

#[[-225  707]
# [-234  782]
# [-205  755]
# ..., 
# [ 303   89]
# [ 337   69]
# [ 274   89]]

write('out2.mp3', sr, x, normalized=False)

答案 1 :(得分:0)

您可以为问题添加更多详细信息吗?您需要哪种帮助?

从首页获取所有主要类别,例如nav#supermenu ul > li > a[href]:not(.tllhome),然后从此处抓取所有产品。如果需要,请通过左过滤器块div.panel-category a进行迭代。

您还可以尝试从站点地图(https://www.powermaxed.com/sitemap.xml)中抓取类别,并从这些页面获取所有产品。