2017-02-05 107 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問題可能會有所幫助。