如何使用Scrapy提取正文?

时间:2014-12-23 10:23:12

标签: python xpath web-scraping 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编码的问题。你能帮我吗? 谢谢!

达尼

1 个答案:

答案 0 :(得分: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:Crawled(200)http://www.jeffbullas.com/2014/12/19/10-ways-to-succeed-in-该新-年龄的移动内容营销/>   (引用者:http://www.bing.com)[u" Jeffbullas的博客",u'互联网   营销',u'写作',u' by',u' ',你' Jeff Bullas',你' - ',你 15   评论',u' \ n \ t \ t \ t \ t分类:',u'内容营销',u',',   你移动'移动内容营销',移动内容营销'移动内容营销'移动内容营销'移动内容营销'移动内容营销'移动内容营销'移动内容营销   营销',你' ',你'媒体发生了翻天覆地的变化。',你'老   后卫正在忽视它,新的暴发户正在接受它。\ xa0眼球   在过去50多年里,媒体对媒体的统治   现在正在线上。数字电视正在为电视做什么   印刷和广播。扰乱和打扰。',