使用Scrapy对新闻进行爬虫(二)

原创 2016年08月29日 04:27:05

Scrapy Item学习笔记

scrapy框架下的Item用于定义抓取的数据内容。实现从非结构化数据(网页)中提取结构化数据时,结构化数据所用的数据结构即为该item(Scrapy.Item)

执行方式

声明一个item类,scrapy导入该模块并使用item实例来存储结构化数据。
所有数据的类型Field实际是一个dict的别名而已。
开发者创建item类只需关注一点:1.需要从网站中抓取哪些数据(采用变量名标志)。

例子(dmoz网站资源数据和news新闻数据)

1.文件:items.py

# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# http://doc.scrapy.org/en/latest/topics/items.html

import scrapy


class DmozItem(scrapy.Item):
    """
    define the fields for your item here like.
    for crawl dmoz items
    """
    title = scrapy.Field()
    link = scrapy.Field()
    desc = scrapy.Field()

class NewsItem(scrapy.Item):
    """
    define the fields for news
    for crawl news items
    """
    url = scrapy.Field()
    source = scrapy.Field()
    title = scrapy.Field()
    editor = scrapy.Field()
    time = scrapy.Field()
    content = scrapy.Field()

2.抓取spider模块导入item类并使用

from NewsSpiderMan.items import NewsItem

使用到的代码片段:

class NewsSpider(CrawlSpider):
    def parse_news(response):
        item = NewsItem()
        item['url'] = [response.url]
        item['source'] =\
            response.xpath('//a[@id="ne_article_source"]/text()').\
            extract()
        item['title'] =\
            response.xpath('//div[@class="post_content_main"]/h1/text()').\
            extract()
        item['editor'] =\
            response.xpath('//span[@class="ep-editor"]/text()').\
             extract()
        item['time'] =\
            response.xpath('//div[@class="post_time_source"]/text()').\
             extract()
        item['content'] =\
            response.xpath('//div[@class="post_text"]/p/text()').\
            extract()
        for key in item:
            for data in item[key]:
                log.msg("item %s value %s" % (key, data))
        return item

Item Loaders类

拥用更加灵活、高效的API来让spider模块对item进行数据填充,更好的对网站数据的解析并填入item项。

使用Scrapy对新闻进行爬虫(零)

Scrapy学习笔记目标使用Scrapy爬虫框架对获取网站新闻数据。爬虫目标网站:http://tech.163.com 提取内容: url 新闻地址 source 新闻来源 tit...

100行python代码爬取5万条网易新闻评论

前几天学习了一下如何爬取网易新闻动态评论,以demo为基础扩展成了100行的小程序,一次可以获取5万多条评论(当然,这取决于当时的评论总数),代码贴上:from bs4 import Beautifu...

基于python Scrapy的爬虫——爬取某网站新闻内容

【完整源码】https://github.com/beng0305/ThirtySixSpider 【环境】python 2.7 scrapy 1.4 PhantomJS Pyodbc sqlserv...

南燕新闻自动生成软件——scrapy爬虫程序

使用scrapy爬虫框架爬取北京大汇丰商学院的新闻,新闻网址: 1.定义Item.py容器类文件,代码如下: import scrapy class PhbsNewsItem(scrapy.Ite...

网络爬虫框架scrapy介绍及应用——抓取新浪新闻的标题内容评论

网络爬虫框架scrapy介绍及应用——抓取新浪新闻的标题内容评论

使用python编写的scrapy爬虫项目

  • 2016年05月18日 10:33
  • 14KB
  • 下载

使用scrapy进行大规模抓取(二)

这是接着之前的(一)写的,上一篇里主要是写了一些解决性能问题的思路。时间过去快半年了,我们抓取的页面也不止百万了。我们在爬虫上也做了一些小改进,比如改善了链接提取器,(一)里提到的四个问题也都有不同程...

[置顶]使用scrapy_redis,自动实时增量更新东方头条网全站新闻

存储使用mysql,增量更新东方头条全站新闻的标题 新闻简介 发布时间 新闻的每一页的内容 以及新闻内的所有图片。项目文件结构。   这是run.py的内容 1 #coding=utf-8 ...

使用scrapy进行大规模抓取(二)

这是接着之前的(一)写的,上一篇里主要是写了一些解决性能问题的思路。时间过去快半年了,我们抓取的页面也不止百万了。我们在爬虫上也做了一些小改进,比如改善了链接提取器,(一)里提到的四个问题也都有不同程...
  • soon14
  • soon14
  • 2014年11月05日 16:56
  • 571

Scrapy爬取中国日报新闻--( 二 )

中国日报网页分析    如图所示,中国日报上的子栏目、子栏目分类、新闻主要分成以下三种格式,如果要按照平常的方式进行爬取,因为没有规律可寻,所以实现起来十分困难。    但是我们可以发现即使新闻的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Scrapy对新闻进行爬虫(二)
举报原因:
原因补充:

(最多只允许输入30个字)