2017-02-05 63 views
0

我开发了一个项目scrapy将刮从tripadvisor.in特定的酒店的评论部分文字,Scrapy不刮整个文本

然而,刮板刮只审查的一部分,而不是整个一个,我不知道为什么。

举例来说,这是一个特殊审查

我们一月期间住在阿克罗6晚。关于酒店的一切都是完美的。 工作人员和服务一样出色。

令人惊讶的是,酒店的饮料和葡萄酒价格非常合理,因此无需漫步。 我们在6晚的5晚上在酒店吃过东西,没有糟糕的一餐。我们吃过的一个晚上是“随流”,这是一家非常不错的餐厅,有很棒的食物,距离酒店约200码。

不要期望从当地的海滩太多。我们发现他们拥挤而肮脏。

早餐是不寻常的,因为它从早上7点运行到下午1点。再次,食物非常好,并呈现良好。

不要期望从当地的海滩太多。我们发现他们拥挤而肮脏。

除此之外,一个伟大的住宿。谢谢全体员工。

沉祥福一月2017年,走过一对夫妇

然而,刮检讨出来是唯一的:

我们一一期间住在阿克罗6晚。酒店的一切都非常完美。\ n工作人员和服务一样出色。\ n令人惊讶的是,酒店的饮料和葡萄酒的价格非常合理,因此无需漫步。\ n我们在6晚的5晚并没有一个坏...

我想要的是刮整个审查也排除转义字符,我该怎么做?

请参阅此链接评论: Reviews

另外,我还要凑喜欢的用户名的其他信息,审查发布等日期,这一切都出完美不过,我想刮

  1. 用户名2.日期3.复习4.标题

,并存储在字典中的所有上述细节每次审议,所以我怎么做,与网页上所有的评论,

为如:

Username1 Date1 Title1 Review1 

Username2 Date2 Title2 Review2 

Username3 Date3 Title3 Review3 
    .  .  .  . 
    .  .  .  . 
Usernamen Daten Titlen Reviewn 

和出口这本词典的CSV或JSON格式?

这里是一段代码:

def parse(self,response): 
    for reviews in response.css('#taplc_hr_reviews_list_0'): 
     username = response.css(' div.username.mo > span::text').extract_first() 
     head = response.css('div > div > div > div > a > span::text').extract_first() 
     date = response.css('.reviewItemInline').xpath('span/@title').extract_first() 
     review = response.css('div>div.col2of2>div>div.wrap>div>div>p::text').extract_first() 
     holder = {'User':username,'Title':head,'Date':date,'Review':review} 

     yield holder 

回答

0

这是谁的JavaScript扩展这些文本,并允许您查看完整的评论,并Scrapy can't run JavaScript code

您可以通过以下链接查看完整评论并从这些页面中抓取数据来解决此问题。

或者,您可以使用硒。 Thisthis问题可能会有所帮助。