文档章节

Python爬虫scrapy

tianshl
 tianshl
发布于 2017/03/05 13:59
字数 369
阅读 765476
收藏 1

准备工作

  • 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可以将数据保存在文件或数据库中

© 著作权归作者所有

下一篇: requirements.txt
tianshl
粉丝 24
博文 55
码字总数 20511
作品 0
青岛
程序员
私信 提问
高级爬虫(一):Scrapy爬虫框架的安装

Hi 小伙伴们差不多有半个月没有更新干货了,一直有点忙,而且这中间还有曲折过程,也就没有更新文章. 但今天无论如何也要更新一篇文章,接下来是爬虫高级篇重点讲解的地方! 最近会连载Scrap...

Python绿色通道
2018/04/22
0
0
[雪峰磁针石博客]2018最佳人工智能数据采集(爬虫)工具书下载

Python网络数据采集 Python网络数据采集 - 2016.pdf 本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。第 1部分重点介绍网络数据采集...

python测试开发人工智能安全
2018/11/07
215
0
使用scrapy的定制爬虫-第一章-前言

这个系列文章还在逐步完成中,可能会多次编辑 这是一个系列文章,关于定制爬虫,使用scrapy. 这是前言. 爬虫,最广为所知用途是搜索引擎的网页抓取.也有很多其他的用途. 诸如各类比价网站(etao,惠...

斑ban
2013/04/02
1K
1
Python爬虫框架Scrapy学习笔记

Python爬虫框架Scrapy学习笔记 糖宝Python 2019-03-31 18:15 scrapy.png 本文主要内容针对Scrapy有初步了解的同学。结合作者的实际项目中遇到的一些问题,汇成本文。 之后会写一些具体的爬虫...

糖宝lsh
03/31
41
0
Python | 初识爬虫框架Scrapy

一、前言 今天给大家分享的是,Python里的爬虫框架Scrapy学习,包含python虚拟环境的搭建、虚拟环境的使用、Scrapy安装方法详解、Scrapy基本使用、Scrapy项目目录及内容基本介绍,let's go!...

技术小能手
2018/09/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Blockstack-2 :Blockstack ID注册

本篇文章主要记录Blockstack ID注册的流程; 在介绍注册流程之前,先简单的介绍一下Blockstack ID; 相对于传统互联网来说,Blockstack ID更像是统一的账号系统;即一个账号即可登录和授权所...

Riverzhou
23分钟前
1
0
面试官问:平时碰到系统CPU飙高和频繁GC,你会怎么排查?

处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运...

Java高级架构师n
48分钟前
21
0
面向对象编程

1、类和对象 类是对象的蓝图和模板,而对象是实例;即对象是具体的实例,类是一个抽象的模板 当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定...

huijue
今天
21
0
redis异常解决 :idea启动本地redis出现 jedis.exceptions.JedisDataException: NOAUTH Authentication required

第一次安装在本地redis服务,试试跑项目,结果却出现nested exception is redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required错误,真是让人头疼 先检查一...

青慕
今天
33
0
Spring 之 IoC 源码分析 (基于注解方式)

一、 IoC 理论 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 二、IoC方式 Spring为IoC提供了2种方式,一种是基于xml...

星爵22
今天
34
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部