2014-12-23 80 views
0

我有這樣的一段代碼,基本上應提取給定網站的正文:如何使用Scrapy提取正文文本?

class MySpider(CrawlSpider): 
    name = 'smm' 
    allowed_domains = [] 
    start_urls =['http://www.jeffbullas.com/2014/12/19/10-ways-to-succeed-in-the-new-age-of-mobile-content-marketing/'] 
    def parse(self, response): 
     items = [] 
     item = SocialMediaItem() 
     item['webKW'] = response.xpath('//body//p//text()').extract() 
     items.append(item) 
     return items 

但是,它似乎沒有報廢。我已經使用這個在線工具http://videlibri.sourceforge.net/cgi-bin/xidelcgi上的同一個網站測試了xpath表達式,並且它完全符合我的需要,所以它必定是Scrapy編碼的一個問題。你能幫我嗎? 謝謝!

達尼

回答

2

您共享,因此是不完整的代碼。無論如何,您需要設置allowed_domains來指示蜘蛛關於域名的去向。

這一個工作示例

class jeffbullasSpider(scrapy.Spider): 
    name = "jeffbullas" 
    allowed_domains = ["jeffbullas.com"] 
    start_urls = [ 
    "http://www.jeffbullas.com/2014/12/19/10-ways-to-succeed-in-the-new-age-of-mobile-content-marketing/"] 

    def parse(self, response): 
     print response.xpath('//body//p//text()').extract() 

輸出的摘錄將是:

2014年12月23日12:05:52 + 0100 [jeffbullas] DEBUG:爬( 200)http://www.jeffbullas.com/2014/12/19/10-ways-to-succeed-in-the-new-age-of-mobile-content-marketing/> (referer:http://www.bing.com)[ ü「Jeffbullas的博客」,u'Internet 營銷',u'Written',u'by',u'',u'Jeff Bullas',u' - ',u'15 評論',u'\ n \噸\噸\噸\ tCategor ies:',u'Content Marketing',u',', u'Mobile',u',',u'mobile content marketing',u',',u'Mobile marketing',u'',u '媒體發生了地震的轉變',u'舊的 後衛正在無視它,新的新貴正在擁抱它。\ xa0眼球 控制了過去50多年的電視媒體 現在正在移動線上。數字電視正在向電視做什麼電視做到了 打印和廣播。 Disrupt and disturb。',

+0

謝謝異形!它正在工作。但是,如何從所有段落中獲取文本,而不僅僅是第一個? –

+0

該代碼適用於所有段落。答覆中的輸出是摘錄 – aberna

+0

你說得對,我沒有正確檢查。再次感謝! –