python 爬取数据还要下载scrapy吗_用Python爬取实习信息(Scrapy初体验)

本文介绍了如何使用Python的Scrapy框架爬取水木社区和北大未名社区的实习信息,存储到MongoDB数据库。内容包括Scrapy的简单介绍、项目创建、items.py和spiders的编写,以及爬虫的运行。文章详细讲解了如何处理动态加载的页面,并展示了MongoDBPipeline的使用,以存储爬取到的数据。
摘要由CSDN通过智能技术生成

1.目标

这两天要弄一个大作业,从水木社区和北大未名社区的实习板块,爬取实习信息,保存在MongoDB数据库。

正好想学习一下scrapy框架的使用,就愉快地决定用scrapy来实现。

2.介绍

Scrapy是Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。使用了 Twisted 异步网络库来处理网络通讯。整体架构:

学习使用Scrapy,最重要的是官方文档。本文的主要参考资料也是该文档。

Scrapy的安装,这里就不说了,在满足一系列依赖的安装以后,pip一下,就搞定了。

pip install scrapy

3.开始

3.1 首先,新建一个Scrapy工程。

进入你的目标目录,输入以下指令,创建项目intern。

$ scrapy startproject intern

目录结构如下:

.

├── scrapy.cfg

└── intern

├── __init__.py

├── items.py

├── pipelines.py

├── settings.py

└── spiders

└── __init__.py

这个目录结构要熟记于心。

scrapy.cfg: 全局配置文件

intern/: 项目python模块

intern/items.py: 项目items文件,定义爬取的数据保存结构

intern/pipelines.py: 项目管道文件,对爬取来的数据进行清洗、筛选、保存等操作

intern/settings.py: 项目配置文件

intern/spiders: 放置spider的目录

3.2 编写items.py文件。

定义item的字段如下:

import scrapy

class InternItem(scrapy.Item):

title = scrapy.Field()

href = scrapy.Field()

author = scrapy.Field()

time = scrapy.Field()

content = scrapy.Field()

is_dev = scrapy.Field()

is_alg = scrapy.Field()

is_fin = scrapy.Field()

base_url_index = scrapy.Field()

定义的方法很简单,每个字段都=scrapy.Field()即可。

使用:比如要使用某item的title,就像python中的dict一样,item[‘title’]即可。

3.3 编写爬虫。

好了终于到了编写爬虫了。以爬取水木社区的爬虫为例。在spiders目录下,创建smSpider.py。

class SMSpider(scrapy.spiders.CrawlSpider):

'''

#要建立一个 Spider,你可以为 scrapy.spider.BaseSpider 创建一个子类,并确定三个主要的、强制的属性:

#name :爬虫的识别名,它必须是唯一的,在不同的爬虫中你必须定义不同的名字.

#start_urls :爬虫开始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值