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

慕姐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()))
添加回答
举报
0/150
提交
取消