1、首先需要安装Scrapy
但是由于在Windows上Scrapy安装出现了各种问题,要求需要最新版的VS。出于偷懒的心理,推荐下载Anaconda,使用Anaconda来管理Python不仅省力,而且方便。
下载Scrapy只需要
conda install scrapy
关于Anaconda下载,如果在官网下载太过慢的话,可以选择在清华的镜像网站进行下载。
2、Scrapy 创建工程
在Anaconda的命令行中输入
scrapy startproject Tutorial(项目名)
即可以在当前目录下创建Scrapy工程。此时空工程的目录如下:
具体需要用的每一个文件,将在下面进行阐述。
可以通过 genspider命令来创建一个通用的爬虫
# scrapy genspider 爬虫名 目标网址
scrapy genspider tutorial cn.chinadaily.com.cn
此时在spiders文件夹下,已经生成了一个名为tutorial的Python文件,这个文件即是我们需要完善的爬虫文件。
3、Spider文件
打开tutorial.py文件。
# -*- coding: utf-8 -*-
import scrapy
class TutorialSpider(scrapy.Spider):
name = 'tutorial'
allowed_domains = ['chinadaily.com.cn'] # 修改了一下
start_urls = ['cn.chinadaily.com.cn']
def parse(self, response):
pass
可以看到 Scrapy已经自动生成了allowed_domains、start_urls和parse函数。
- allowed_domains 所允许访问的域名
- start_urls 爬虫开始的URL
parse 对抓取的html页面的解析函数
我们还需要针对所需要爬取的页面,对parse进行override。
抓取的新闻对象 Item
那么我们想要抓取中国日报上的新闻,我们就需要保存新闻的标题、作者、新闻发布时间、新闻内容、以及新闻的标签等等。
我们需要是用到items.py。可以将item看成是对象。
# -*- 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 NewsItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
# 将item补充完整
# 新闻标题
title = scrapy.Field()
# 作者
author = scrapy.Field()
# 新闻来源
source = scrapy.Field()
# 新闻发布时间
pubtime = scrapy.Field()
# 新闻内容
content = scrapy.Field()
# 新闻标签
tags = scrapy.Field()
# url
url = scrapy.Field()
在Scrapy中所有的数据都会被保存成String类型。
本文介绍了如何在Windows上利用Anaconda安装Scrapy,并创建Scrapy工程来爬取中国日报的新闻。文章详细讲解了创建工程、生成爬虫以及Spider文件中的allowed_domains、start_urls和parse函数的使用。此外,还讨论了如何定义Item来存储新闻的标题、作者、发布时间等信息。
3万+

被折叠的 条评论
为什么被折叠?



