Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用scrapy抓取同一名称的多个唯一项。

使用scrapy抓取同一名称的多个唯一项。
EN

Stack Overflow用户
提问于 2014-07-15 01:27:43
回答 1查看 941关注 0票数 0

我必须抓取下面的url,它基本上包含评论。所有的评论,都有一个评论作者的名字,一个评论的标题,和一个评论本身。

我选择了“”来完成这个任务。

但是上面提到的url不是start,我将从基本的parse方法中获得它。在解析中,我将初始化一个itemLoder。我将在那里提取几个项目,并通过响应的meta传递项目。(提取的字段包含酒店名称、地址、价格等信息。)

我还声明了一些项目,即"review_member_name“、"review_quote”、"review_review“

页面中有多个评审,并且可以从response.url获得评审id。(如下面的解析方法所示)

由于有许多评论,而且所有的评论都将共享相同的项目名称,所以这些项目都会得到连接的,这是不应该发生的。有人能给我建议解决这个问题的方法吗?

下面是我的parse_review来源。

代码语言:javascript
运行
AI代码解释
复制
def parse_review(self,response):
    review_nos = re.search(".*www\.tripadvisor\.in/ExpandedUserReviews-.*context=1&reviews=(.+)&servlet=Hotel_Review&expand=1",response.url).group(1)
    review_nos = review_nos.split(',') # list of review ids

    for review_no in review_nos:
        item = response.meta['item']
        #item = ItemLoader(item=TripadvisorItem(), response=response) - this works fine but I will lose the items from parse method
        div_id = "expanded_review_"+review_no
        review = response.xpath('/html/body/div[@id="%s"]'%div_id)
        member_name = review.xpath('.//div[@class="member_info"]//div[@class="username mo"]//text()').extract()
        if member_name:
            item.add_value('review_member_name', member_name)

        review_quote = review.xpath('.//div[@class="innerBubble"]/div[@class="quote"]//text()').extract()
        if review_quote:
            item.add_value('review_quote', review_quote)

        review_entry = review.xpath('.//div[@class="innerBubble"]/div[@class="entry"]//text()').extract()
        if review_entry:
            item.add_value('review_review', review_entry)

        yield item.load_item()

下面是我的items.json ("review_review“正在被删除,解析方法中的项也被删除)

[{"review_quote": "\u201c Fabulous service \u201d", "review_member_name": "VimalPrakash"}, {"review_quote": "\u201c Fabulous service \u201d \u201c Indian hospitality at its best, and honestly the best coffee in India \u201d", "review_member_name": "VimalPrakash Jessica P"}, {"review_quote": "\u201c Fabulous service \u201d \u201c Indian hospitality at its best, and honestly the best coffee in India \u201d \u201c Nice hotel in a central location \u201d", "review_member_name": "VimalPrakash Jessica P VikInd"}]

请为这个问题建议一个好的标题。

EN

回答 1

Stack Overflow用户

发布于 2014-07-15 03:36:49

在对其执行ItemLoader之前,您必须创建一个新的add_value;现在您正在创建一个项,并在循环中一次又一次地向它添加新的值。

代码语言:javascript
运行
AI代码解释
复制
for review_no in review_nos:
    item = ItemLoader(item=projectItem(), response=response)

    ...

    yield item.load_item()

您还可以在提供的xpath中直接使用.add_xpath,并在创建ItemLoader时使用response.xpath作为项的选择器,这样您就可以避免所有的if测试,让load做它应该做的事情: load item。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24754531

复制
相关文章
【Unity3D】Unity 组件 ② ( 删除 Light 组件 | 添加 Light 组件 | 构造物体组件 | 添加网格过滤器组件 | 添加网格渲染器组件 )
选中 平行光源 物体 , 在右侧的 Inspector 检查器窗口 中 , 点击 Light 组件右上角的
韩曙亮
2023/03/30
7820
【Unity3D】Unity 组件 ② ( 删除 Light 组件 | 添加 Light 组件 | 构造物体组件 | 添加网格过滤器组件 | 添加网格渲染器组件 )
Flutter 中 GridView网格列表组件的使用
当数据量很大的时候用矩阵方式排列比较清晰,此时我们可以用网格列表组件 GridView 实现布局。
越陌度阡
2020/12/22
3.7K0
Flutter 中 GridView网格列表组件的使用
Flutter中GridView网格列表组件的使用
当数据量很大的时候用矩阵方式排列比较清晰,此时我们可以用网格列表组件 GridView 实现布局。
越陌度阡
2022/05/06
3.6K0
Flutter中GridView网格列表组件的使用
Sketch for mac(矢量绘图UI设计软件)93 最新中文版
Sketch93改进增加了 Sketch 中更好的整体体验——从将任何画板设置为文档缩略图到改进的智能网格体验。
啾咪啾咪
2022/09/14
1.6K0
使用CSS生成loading样式组件
使用CSS生成svg矢量图,可以随着CSS文件一起缓存,减少请求图片的次数。在React中可以使用svgr将svg转换为组件,支持按需加载等功能。
不作声
2021/03/05
1.1K0
使用CSS生成loading样式组件
css - Grid网格布局
.wrapper{ display: grid; grid-template-columns: 100px 100px 100px; grid-template-r
xing.org1^
2018/12/17
1.2K0
css - Grid网格布局
Css hover控制同级元素样式
1. 父子关系 .a:hover .b{color:red}; 2. 同级相邻元素 .a:hover + .b{color:red}; 3. 同级不相邻元素 .a:hover ~ .b{color:red}; ps: 1. 同级相邻或者不相邻都可以使用 ~; 2. 这里的同级指b标签必须在a的后面,若是前面,则不起效果,使用js控制。
用户1349575
2022/01/25
2.5K0
vue同级组件传值
侧边栏是aside组件,上面是toolbar组件,现在希望点击侧边栏每个路由都能在toolbar的当前位置处及时更新相应的值,大型应用通常使用vuex管理这部分功能,由于同级组件不能直接传值,需要一个中间件,我们可以先将数据传递给公共的父组件,然后父组件再将数据传递给需要的子组件。
4O4
2022/04/25
7200
vue同级组件传值
React 组件库 CSS 样式问题分析
首先分享一篇网易云音乐技术团队整理的一篇文章 React 组件库 CSS 样式方案分析
德顺
2022/12/10
2.5K0
React 组件库 CSS 样式问题分析
CSS 实现网格背景效果
本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。
Cell
2023/09/03
8200
网格系统 CSS Grid Layout
听闻w3cplus大漠在第三届CSS Conf上的演讲主题是CSS Grid Layout,吓得我赶紧抛下红尘俗事闭门谢客苦心钻研,唯恐脚步太慢,遥望大漠一骑绝尘而扼腕叹息。
IMWeb前端团队
2019/12/04
2.5K0
网格系统 CSS Grid Layout
本文主要介绍了网格系统CSS Grid Layout,包括它的基本概念、属性、浏览器支持情况,以及如何使用CSS Grid Layout来实现网格布局。同时,还探讨了如何使用CSS Grid Layout来实现复杂的网格布局,包括如何定义网格容器的布局方式、如何使用grid-template-columns和grid-template-rows来定义网格的栏和行,以及如何设置grid-column和grid-row等属性来控制网格单元格的排列方式。最后,还介绍了一些实用的CSS Grid Layout属性,包括grid-gap、grid-row-gap和grid-column-gap等,以及如何使用这些属性来实现更加复杂的网格布局。
IMWeb前端团队
2017/12/29
3K0
网格系统 CSS Grid Layout
Typecho通用评论组件包含Css样式
一直以来我都不太喜欢写Typecho评论列表样式,那时候多说还没有死,就想着有没有大佬直接写好一套Typecho评论列表简单样式,然后别人就可以改改css和html结构就能diy自己的样式,不用考虑php啥的,于是乎昨天简单弄了下。
泽泽社长
2023/10/01
4470
ElementUI通过CSS修改组件样式
最近在做一个比赛项目,在前端设计(使用Vue.js)的时候用到了ElementUI组件。前端整体的背景是深色调,调用ElementUI各项组件时其样式并不能很好的契合主题,因此需要通过CSS修改其色调及样式,但是直接通过class定位组件,并添加!important关键字后依然不能改动。
花猪
2022/04/14
3K0
ElementUI通过CSS修改组件样式
vue项目封装组件_前端组件封装
在使用vue进行日常开发的时候,组件的封装是一个很常规的操作,也可以从npm仓库下载别人封装好的组件来使用,比如iview,element ui等…但每个项目的应用场景不同,所以我们有时也需要自己封装组件。而如果在开发中换了项目,那么就只能复制代码过去,略显麻烦,这个时候呢,可以将封装好的组件上传到npm仓库,需要使用时就可以直接通过npm指令下载,非常方便。
全栈程序员站长
2022/11/09
1.6K0
vue项目封装组件_前端组件封装
vue封装组件思路_前端封装组件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
9900
CSS 浮动布局和网格系统
浮动能将一个元素(通常是一张图片)拉到其容器的一侧,这样文档流就能够包围它。这种布局在报纸和杂志中很常见,因此 CSS 增加了浮动来实现这种效果。(CSS 是一种排版约定)
Cellinlab
2023/05/17
9370
CSS 浮动布局和网格系统
【7b2主题美化】网格样式文章鼠标悬浮弹出分类角标
角标颜色和站点主颜色相同 有子主题的复制进style.css即可 .post-1 a.post-list-cat-item { background: var(--b2color); color: #fff!important; padding: 4px; line-height: 12px; border-radius: 4px; } .post-list-meta-box { justify-content: space-between; margin:
小梦 over
2023/02/01
6990
MDUI CSS框架 -网格布局
MDUI 需要为页面内容和网格布局系统包裹一个 .mdui-container 容器。我们提供了两个此作用的类。
meowrain
2021/04/22
2.5K0
MDUI CSS框架 -网格布局
点击加载更多

相似问题

从组件内部将CSS样式应用于角组件

27

角定制th组件的样式封装

11

css网格+ react组件挑战

22

用样式化的同级组件样式.组件

15

数据网格中同级组件之间的数据共享

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档