美文网首页
用Scrapy采集公管学院新闻

用Scrapy采集公管学院新闻

作者: 安小宇 | 来源:发表于2017-05-21 16:54 被阅读0次

采集对象:四川大学公共管理学院新闻动态及内容
爬取规则:用css选择器的方法来进行元素定位

采集过程

激活,进入虚拟环境


1.png

创建项目


2.png

修改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 GgnewsItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()
    time = scrapy.Field()
    content = scrapy.Field()
    img = scrapy.Field()

编写爬虫

import scrapy

from ggnews.items import GgnewsItem

class GgnewsSpider(scrapy.Spider):
    name = "spidernews"
    start_urls = [
        'http://ggglxy.scu.edu.cn/index.php?c=special&sid=1',
    ]

    def parse(self, response):
        for href in response.css('div.pb30.mb30 div.right_info.p20.bgf9 ul.index_news_ul.dn li a.fl::attr(href)'):
            url = response.urljoin(href.extract())
            yield scrapy.Request(url, callback=self.parse2)

            next_page = response.css('div.w100p div.px_box.w1000.auto.ovh.cf div.pb30.mb30 div.mobile_pager.dn li.c::text').extract_first()
            if next_page is not None:
                next_url = int(next_page) + 1
                next_urls = '?c=special&sid=1&page=%s' % next_url
                print next_urls
                next_urls = response.urljoin(next_urls)
                yield scrapy.Request(next_urls,callback = self.parse)

    def parse2(self, response):
        items = []
        for new in response.css('div.w1000.auto.cf div.w780.pb30.mb30.fr div.right_info.p20'):
                item = GgnewsItem()
                item['title'] = new.css('div.detail_zy_title h1::text').extract_first(),
                item['time'] = new.css('div.detail_zy_title p::text').extract_first(),
                item['content'] = new.css('div.detail_zy_c.pb30.mb30 p span::text').extract(),
                item['img'] = new.css('div.detail_zy_c.pb30.mb30 p.MsoNormal img::attr(src)').extract(),
                items.append(item)

        return items

将爬虫文件拖进spiders文件夹下

3.png
4.png

执行爬虫

scrapy crawl spidernews -o spidernews.xml

(开始几次一直出现 ImportError: No module named items的错误,查百度发现时spiders 目录中的.py文件不能和项目名同名的问题,对其文件名进行修改)


5.png
scrapy crawl spidernews -o spidernews.json
7.png

得到数据


6.png 8.png 9.png 10.png

相关文章

  • 用Scrapy采集公管学院新闻

    采集对象:四川大学公共管理学院新闻动态及内容爬取规则:用css选择器的方法来进行元素定位 采集过程 激活,进入虚拟...

  • 0304

    03章 开始采集 3.4 用Scrapy采集 先创建Scrapy项目,如果在当前目下: wikiSpider是新项...

  • Scrapy采集川大公管学院新闻动态以及全职教师信息实验报告

    目录: Report B1——采集川大公管学院新闻动态信息 1.确定采集内容 2.创建爬取项目 3.定义spide...

  • Scrapy采集新闻资讯实验报告

    实验对象:四川大学公共管理学院官网--新闻动态页实验目的:运用Scrapy框架进行实际信息的采集以巩固和提高信息检...

  • scrapy爬取学院新闻

    采集策略 任务:采集四川大学公共管理学院所有的新闻资讯策略:先分析网页,发现网页之间存在的关系需要从新闻动态页面点...

  • Scrapy 数据采集

    B1:新闻数据采集 一、项目分析 采集对象:四川大学公共管理学院新闻动态栏 采集环境:Ubuntu+MobaXt...

  • 爬取川大公管学院新闻动态

    一、实验目标 采集学院官网的新闻信息 内容包括 新闻标题、时间、正文 二、采集工具 八爪鱼V7.3.8 三、预期采...

  • 学院教师信息爬取报告(一)

    关键词:ubuntu系统、scrapy简单爬取任务 1. 明确目标:明确采集任务 任务:是爬取学院网站上教师列表...

  • 2016/12/02

    技术 Scrapy Shell - How to change USER_AGENT scrapy在采集网页时使用...

  • 爬虫0601:scrapy实战

    scrapy实战:智联招聘数据采集 章节内容 通过scrapy项目开发,完成智联招聘工作岗位信息的数据采集工作 课...

网友评论

      本文标题:用Scrapy采集公管学院新闻

      本文链接:https://www.haomeiwen.com/subject/vrtvxxtx.html