首页 > 解决方案 > 从阿里巴巴抓取类别及其网址并将其放在两列中

问题描述

嗨,我是scrapy的新手,我正在尝试从阿里巴巴的产品类别页面中抓取类别和类别的URL 。我正在尝试将其抓取并放在 CSV 文件中。

当我在电子表格中打开它时,我想给出的视图是:-

categories                           categories_urls

Agricultural Growing Media           its URL
Animal Products                      its URL
.                                    .
.                                    .
.                                    .

代码:-

# -*- coding: utf-8 -*-
import scrapy

class AlibabaCatagoriesSpider(scrapy.Spider):
name = 'alibaba_catagories'
allowed_domains = ['alibaba.com']
start_urls = ['https://www.alibaba.com/Products?spm=a2700.8293689.scGlobalHomeHeader.352.2ce265aa7GOmOF']

def parse(self, response):
    a = response.css('ul.sub-item-cont')
    for catag in a:
        item = {
           'categories': catag.css('li>a::text').extract(),
           'categories_url': catag.css('li>a::attr(href)').extract()
            }
        yield item

问题

你怎么能帮忙

理想的格式。

标签: pythonxpathweb-scrapingscrapycss-selectors

解决方案


使用 Scrapy 非常简单:

def parse(self, response):

    for category_node in response.xpath('//ul[contains(@class, "sub-item-cont")]/li/a'):

        item = {
           'categories': category_node.xpath('./text()').extract_first().strip(),
           'categories_url': category_node.xpath('./@href').extract_first()
        }
        yield item

推荐阅读