首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >产品信息分析及产品评论

产品信息分析及产品评论
EN

Stack Overflow用户
提问于 2020-03-11 11:54:25
回答 1查看 82关注 0票数 1

我正在创建一个爬虫来获取产品信息和产品评论,并从一个特定的类别导出到csv文件。例如,我需要从裤子类别中获取所有信息,所以我的爬行从那里开始。

我可以很容易地从那里提取每个产品的链接。但是我需要爬虫打开这个链接,获取每个产品所需的所有信息。我也需要它来获取产品的所有评论,但问题是评论也有分页。

我从这里开始:

类SheinSpider(scrapy.Spider):

代码语言:javascript
运行
复制
name = "shein_spider"
start_urls = [
    "https://www.shein.com/Men-Pants-c-1978.html?icn=men-pants&ici=www_tab02navbar02menu01dir06&scici=navbar_3~~tab02navbar02menu01dir06~~2_1_6~~real_1978~~~~0~~0"
]

def parse(self, response):
    for item in response.css('.js-good'):
        yield {"product_url": item.css('.category-good-name a::attr(href)').get()}

我知道如何解析目录列表中的信息,但不知道如何让爬虫跟踪列表中的每个链接。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-11 12:11:58

在scrapy中跟踪链接的方法是只生成一个scrapy.Request对象,其中包含您想要用来处理该链接的URL和解析。从scrapy文档教程“Scrapy的以下链接机制:当您在回调方法中生成请求时,Scrapy将计划发送该请求,并在该请求完成后注册要执行的回调方法”。

我建议查看Scrapy文档这里中的教程,特别是名为“以下链接”的部分。

在您的特定示例中,这是使其工作的代码。请注意,您的产品url必须是完整的,并且可能是您从其中获得的href只有一个相对的url。

代码语言:javascript
运行
复制
name = "shein_spider"
start_urls = [
    "https://www.shein.com/Men-Pants-c-1978.html?icn=men-pants&ici=www_tab02navbar02menu01dir06&scici=navbar_3~~tab02navbar02menu01dir06~~2_1_6~~real_1978~~~~0~~0"
]

def parse(self, response):
    for item in response.css('.js-good'):
        product_url = item.css('.category-good-name a::attr(href)').get()
        yield scrapy.Request(product_url, callback=self.parse_item)

def parse_item(self, response):
    # Do what you want to do to process the product details page #
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60635442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档