In [ ]:
Crawler de comentários no site Bondfaro.

In [122]:
from scrapy.http import TextResponse
from scrapy.selector import Selector
import requests
import csv

In [123]:
http_proxy = ""

In [124]:
NAME_SELECTOR = 'div.user-info a.name ::text'
SCORE_SELECTOR = 'h3.sub-tit span.nts ::text'
DATE_SELECTOR = 'h3.sub-tit span.date ::text'
TITLE_SELECTOR = 'h3.sub-tit span.tit-txt ::text'
DESC_SELECTOR = 'p.descr ::text'

URL_BONDFARO = "http://www.bondfaro.com.br/ajax/avaliacao-produto?idu={0}&pagina={1}"
HEADER = [u"user",u"score",u"date",u"title",u"message"]

In [125]:
id_product = "611655"
page = 1

r = requests.get(URL_BONDFARO.format(id_product,page),proxies = {"http": http_proxy,"https": http_proxy})
with open('dataset.csv', 'w') as f:

    writer = csv.writer(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL, lineterminator='\n')
    writer.writerow(HEADER)
        
    while r.text != '' :        
        print("--> Página: " + str(page))
        response = TextResponse(r.url,body=r.text, encoding='UTF-8')        
        sel = Selector(response)
        
        for node in response.css('.user-opinion'):            
            #print(node.css(NAME_SELECTOR).extract_first())
            #print(node.css(SCORE_SELECTOR).extract_first())
            #print(node.css(DATE_SELECTOR).extract()[1])
            #print(node.css(TITLE_SELECTOR).extract_first())            
            #print(node.css(DESC_SELECTOR).extract_first())
            row = [
                node.css(NAME_SELECTOR).extract_first(),
                node.css(SCORE_SELECTOR).extract_first(),
                node.css(DATE_SELECTOR).extract()[1],
                node.css(TITLE_SELECTOR).extract_first(),           
                node.css(DESC_SELECTOR).extract_first().replace('\n','').replace('\t','')
            ]            
            writer.writerow(row)            
        page = page + 1    
        r = requests.get(URL_BONDFARO.format(id_product,page),proxies = {"http": http_proxy,"https": http_proxy})

print('############################################')
print('####             EOF                   #####')
print('############################################')


--> Página: 1
--> Página: 2
--> Página: 3
--> Página: 4
--> Página: 5
--> Página: 6
--> Página: 7
--> Página: 8
--> Página: 9
--> Página: 10
--> Página: 11
--> Página: 12
--> Página: 13
--> Página: 14
--> Página: 15
--> Página: 16
--> Página: 17
--> Página: 18
--> Página: 19
--> Página: 20
--> Página: 21
--> Página: 22
--> Página: 23
--> Página: 24
--> Página: 25
--> Página: 26
--> Página: 27
--> Página: 28
--> Página: 29
--> Página: 30
--> Página: 31
--> Página: 32
--> Página: 33
--> Página: 34
--> Página: 35
--> Página: 36
--> Página: 37
--> Página: 38
--> Página: 39
--> Página: 40
--> Página: 41
--> Página: 42
--> Página: 43
--> Página: 44
--> Página: 45
--> Página: 46
--> Página: 47
--> Página: 48
--> Página: 49
--> Página: 50
--> Página: 51
--> Página: 52
--> Página: 53
--> Página: 54
--> Página: 55
--> Página: 56
--> Página: 57
--> Página: 58
--> Página: 59
--> Página: 60
--> Página: 61
--> Página: 62
--> Página: 63
--> Página: 64
--> Página: 65
--> Página: 66
--> Página: 67
--> Página: 68
--> Página: 69
--> Página: 70
--> Página: 71
--> Página: 72
--> Página: 73
--> Página: 74
--> Página: 75
--> Página: 76
--> Página: 77
--> Página: 78
--> Página: 79
--> Página: 80
--> Página: 81
--> Página: 82
--> Página: 83
--> Página: 84
--> Página: 85
--> Página: 86
--> Página: 87
--> Página: 88
--> Página: 89
--> Página: 90
--> Página: 91
--> Página: 92
--> Página: 93
--> Página: 94
--> Página: 95
--> Página: 96
--> Página: 97
--> Página: 98
--> Página: 99
--> Página: 100
--> Página: 101
--> Página: 102
############################################
####             EOF                   #####
############################################

In [ ]: