从 alibaba 中删除类别及其 url 并将其放在两列中

我正在尝试从阿里巴巴的“产品按类别”页面中删除类别和类别的 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

问题

\n 和空白在抓取类别时被抓取。

数据没有以理想的格式抓取

你怎么能帮忙

修改代码,这样我们就可以拥有

给出在抓取时删除 \n 和空白的技巧

理想的格式。


HUWWW
浏览 143回答 3
3回答

慕仙森

使用 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

慕姐8265434

尝试以下选择器list(map(lambda x: x.replace('\n', '').strip(), response.xpath('//*[@class="cg-main"]//*[contains(@class, "sub-item-cont")]//li/a[@href]/text()').extract()))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python