您的位置:首页 > 编程语言 > Python开发

Python爬虫scrapy

2017-03-05 00:00 148 查看

准备工作

Python

scrapy

IDE(我选择使用Pycharm)

虚拟环境

tianshl@T:~/workspace$ mkdir reptile

tianshl@T:~/workspace$ cd reptile/

tianshl@T:~/workspace/reptile$ virtualenv venv

tianshl@T:~/workspace/reptile$ source venv/bin/activate

安装scrapy

(venv) tianshl@T:~/workspace/reptile$ pip install scrapy

创建一个工程,例如:reptile

(venv) tianshl@T:~/workspace/reptile$ scrapy startproject reptile

此条指令会得到scrapy创建的一个目录结构

|__  reptile/
|__  reptile/
|__  spiders/
|__  __init__.py
|__  __init__.py
|__  items.py
|__  middlewares.py
|__  pipelines.py
|__  settings.py
|__ scrapy.cfg

编写爬虫脚本

以锐聘学院首页推荐课程为例

在spiders目录下创建mooc.py

编辑mooc.py

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

import scrapy
from scrapy import Selector

class MooCollege(scrapy.Spider):
# 爬虫的名称
name = 'MooCollege'
# 爬取的入口(锐聘学院)
start_urls = ['http://www.moocollege.cn/']
# 域名
host = 'http://www.moocollege.cn'

def parse(self, response):
ele = Selector(response)
# 以推荐课程为例,获取课程名称和课程链接
courses = ele.xpath(".//*[@id='recommend_courses_show']/a")
for course in courses:
print '课程名称: ', course.xpath('div[2]/div/text()').extract_first()
print '课程链接', '{}{}'.format(self.host, course.xpath('@href').extract_first())

执行爬虫脚本

(venv) tianshl@T:~/workspace/reptile$ cd reptile/

(venv) tianshl@T:~/workspace/reptile/reptile$ scrapy crawl MooCollege

运行结果如下

课程名称:  Java Web技术及应用
课程链接 http://www.moocollege.cn/courses/MOOCOLLEGE/S003/Always/about?course_base=56&course_package=-1 课程名称:  Unity3D基础入门
课程链接 http://www.moocollege.cn/courses/MOOCOLLEGE/G001/Always/about?course_base=46&course_package=-1 课程名称:  UI入门:零基础时尚APP界面设计
课程链接 http://www.moocollege.cn/courses/MOOCOLLEGE/U001/Always/about?course_base=148&course_package=-1

至此,一个简单的爬虫就写好了

数据永久化

使用Pipeline可以将数据保存在文件或数据库中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息