python - 从阿里巴巴抓取类别及其网址并将其放在两列中
问题描述
嗨,我是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
问题
- \n 和空白在抓取类别时被抓取。
- 数据未以理想的格式抓取
你怎么能帮忙
- 修改代码,这样我们就可以拥有
- 给出在刮擦时删除 \n 和空格的技巧
理想的格式。
解决方案
使用 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
推荐阅读
- r - 分面图的类别名称
- symfony - 找不到类 LogEntry
- testing - TestCafe、CircleCI 2.0 和 SauceLabs——无法让这种组合发挥作用
- mongodb - MongoDB - 按关键字搜索“这样”不起作用
- xcode - 如何在 Xcode 中使用具有相同类名的不同源文件进行模拟?
- sikuli - SikuliX IDE 填充多个输入字段
- php - Magento 2 - 我应该观察什么事件来更改/拦截购物车上小计的计算
- python - 如果来自 A 的 LU 分解的稀疏 L 和 U 矩阵存储在 scipy.sparse.linalg.splu 中,我该如何调用它们?
- android - Firebase InApp Messaging 消息停止发送,无法更新
- mysql - 将 SELECT 值除以找到的第一个条目