为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUWWW 2021-05-31 15:38:12
我正在尝试从阿里巴巴的“产品按类别”页面中删除类别和类别的 URL 。我正在尝试抓取它并将其放在一个 CSV 文件中。这是我在电子表格中打开它时想要给出的视图是:-categories                           categories_urlsAgricultural Growing Media           its URLAnimal Products                      its URL.                                    ..                                    ..                                    .代码:-# -*- coding: utf-8 -*-import scrapyclass 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 和空白的技巧理想的格式。
查看完整描述

3 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

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


查看完整回答
反对 回复 2021-06-08
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

尝试以下选择器

list(map(lambda x: x.replace('\n', '').strip(), response.xpath('//*[@class="cg-main"]//*[contains(@class, "sub-item-cont")]//li/a[@href]/text()').extract()))



查看完整回答
反对 回复 2021-06-08
  • 3 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号