Scrapy实战,利用Scrapy简单爬取新闻并将内容储存

工欲善其事,必先利其器

首先要先安装好scrapy框架包,参考https://blog.csdn.net/m0_46202060/article/details/106201764

1.Scrapy框架的基本操作

使用Scrapy框架制作爬虫一般需要以下四个步骤:
(1)新建项目:创建一个新爬虫项目 scrapy startproject ***
(2)明确目标:明确要爬取的目标 scrapy genspider 爬虫名称 “爬虫域”
(3)制作爬虫:制作爬虫,开始爬取网页 scrapy crawl 爬虫名称
(4)储存数据:储存爬取内容 scrapy crawl 爬虫名称 -o json/xml/jsonl/csv

(1) 新建项目

打开cmd,创建一个新项目:

scrapy startproject myspider01

在这里插入图片描述

(2)明确目标 (爬取新闻标题、时间、出版社)

首先切换到刚刚创建的工程路径下

scrapy genspider xinwen "news.sina.com.cn"

注意:“ ” 中内容必须为网址形式
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020052112403477.png
然后我们打开pycharm查看:
这里自动生成了若干文件和目录

spiders:储存爬虫代码的目录
scrapy.cfg:配置文件
items.py:用于定义项目的目标实体
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200521124713806.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2MjAyMDYw,size_16,color_FFFFFF,t_70

(3)制作爬虫

1.将地址更换为你想要爬取的网页地址
2.用xpath爬取网页内容

import scrapy

from myspider01.items import Myspider01Item

class XinwenSpider(scrapy.Spider):
    name = 'xinwen'
    allowed_domains = ['new.sina.com.cn']
    start_urls = ['https://news.sina.com.cn/gov/xlxw/2020-05-20/doc-iircuyvi4073201.shtml']

    def parse(self, response):
        item = Myspider01Item()
        item['title'] = response.xpath('//*[@id="top_bar"]/div/div[1]/text().extract()[0]')
        item['time'] = response.xpath('//*[@id="top_bar"]/div/div[2]/span[1]/text().extract()[0]')
        item['source'] = response.xpath('//*[@id="top_bar"]/div/div[2]/span[2]/text().extract()[0]')
        yield item

3.extract()方法返回的是对应的字符串列表
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200521132244862.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2MjAyMDYw,size_16,color_FFFFFF,t_70
3.在items中添加对应属性title、time、source,分别表示新闻的标题、时间、来源

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

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

import scrapy


class Myspider01Item(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()
    time = scrapy.Field()
    source = scrapy.Field()

在这里插入图片描述

4.在myspider01项目中创建一个main文件,用于执行语句

from scrapy import cmdline
cmdline.execute('scrapy crawl xinwen'.split())

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200521134015292.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2MjAyMDYw,size_16,color_FFFFFF,t_70

这样就成功用scrapy框架将新闻爬取下来了!

另外,也可以直接在cmd命令行中直接运行,我们来看一下效果

scrapy crawl xinwen

在这里插入图片描述

(4)将爬取内容储存下来

这个很easy,直接将main文件中的代码做稍微修改即可:

同样,可以直接在cmd中执行命令:

scrapy crawl xinwen -o xinwen.xml

在这里插入图片描述
这样就会在项目文件中自动写入xml的文件

在这里插入图片描述

也可直接在pycharm中写入命令:

from scrapy import cmdline
cmdline.execute('scrapy crawl xinwen -o news.json'.split())

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余生羁绊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值