scrapy系统学习(1)--概要

本文操作环境:ubuntu14.04

一.安装Scrapy/Mysql/MySQLdb

  • 参照官网教程安装Scrapy
#sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 627220E7
#echo ‘deb http://archive.scrapy.org/ubuntu scrapy main‘ | sudo tee /etc/apt/sources.list.d/scrapy.list
#sudo apt-get update && sudo apt-get install scrapy-0.25
  • 安装Mysql
#apt-get install mysql-server
  • 安装第三方库MySQLdb
#apt-get install python2.7-mysqldb

二.爬虫的目标是抓取

start一个爬虫项目,目标是抓取http://www.mininova.org/today 界面上每日更新的内容并以json格式保存。

[email protected]:/home# scrapy startproject mininova

mininova/
├── mininova
│   ├── __init__.py
│   ├── items.py
│   ├── pipelines.py
│   ├── settings.py
│   └── spiders
│      └── __init__.py
└── scrapy.cfg

items一般与pipelines.py一起使用,items可以定义自己需要抓取的格式,pipelines.py可以定义抓取内容。

items.py:

# -*- 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 MininovaItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
        url=scrapy.Field()
        name=scrapy.Field()
        description=scrapy.Field()
        size=scrapy.Field()

在spider新建文件mininova_spider.py:

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
from mininova.items import MininovaItem
class MininovaSpider(CrawlSpider):
        name=‘mininova‘
        allowed_domains=[‘mininova.org‘]
        start_urls = [‘http://www.mininova.org/today‘]
        rules = [Rule(LinkExtractor(allow=[‘/tor/\d+‘]), ‘parse_torrent‘)]

        def parse_torrent(self, response):
                #global MininovaItem
                torrent = MininovaItem()
                torrent[‘url‘] = response.url
                torrent[‘name‘] = response.xpath("//h1/text()").extract()
                torrent[‘description‘] = response.xpath("//div[@id=‘description‘]").extract()
                torrent[‘size‘] = response.xpath("//div[@id=‘info-left‘]/p[2]/text()[2]").extract()
                return torrent

将数据json化

[email protected]:/home/mininova#scrapy crawl mininova -o scraped_data.json
[email protected]:/home/mininova#vim scraped_data.json
[{"url": "http://www.mininova.org/tor/13278887", "size": [], "description": ["<div id=\"description\">\n\n<iframe id=\"share-facebook\" src=\"http://www.facebook.com/plugins/like.php?href=http://www.mininova.org/tor/13278887&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;colorscheme=light&amp;height=65\" scrolling=\"no\" frameborder=\"0\"></iframe>\n\nYoung Lucid‘s debut release features Joell Oritz, one quarter of the Shady Records\u2019 super group, Slaughterhouse. The emotional production from 2 Deep &amp; MeccaGodZilla set the tone for the lyrical duo as they trade bars about a world they long to escape. \u201cRunaway\u201d is a mere preview of Young Lucid\u2019s upcoming project, \u201cLucid Dreams\u201d which is slated for a 2015 release.<br>\n<br>\n<a target=\"_blank\" rel=\"nofollow\" href=\"http://www.younglucid.com/\">www.younglucid.com</a><br>\n<a target=\"_blank\" rel=\"nofollow\" href=\"http://www.meccagodzilla.com\">www.meccagodzilla.com</a><br>\n<br>\n<div class=\"clear-left\"></div>\n</div>"], "name": ["NEW: Runaway Ft. Joell Ortiz by Young Lucid "]}]
时间: 2024-10-24 18:40:23

scrapy系统学习(1)--概要的相关文章

python应用:爬虫框架Scrapy系统学习第二篇——windows下安装scrapy

windows下安装scrapy 依次执行下列操作: pip install wheel pip install lxml pip install PyOpenssl 安装Microsoft visual c++ build tools pip install twisted 当此处提示错误时,安装Microsoft Visual C++ Compiler for Python 2.7 下载地址:https://www.microsoft.com/en-us/download/confirmat

python应用:爬虫框架Scrapy系统学习第三篇——初识scrapy

scrapy的最通用的爬虫流程:UR2IM U:URL R2:Request 以及 Response I:Item M:More URL 在scrapy shell中打开服务器一个网页 cmd中执行:scrapy shell http://www.baidu.com    (可以使用exit()退出) 此时,scrapy执行一个默认的GET请求,并得到一个状态码为200的响应 可以使用response.body打印页面源码(或部分字符) 例:response.body[:50] 同时,也可使用r

python应用:爬虫框架Scrapy系统学习第四篇——scrapy爬取笔趣阁小说

使用cmd创建一个scrapy项目: scrapy startproject project_name (project_name 必须以字母开头,只能包含字母.数字以及下划线<underscorce>) 项目目录层级如下: 声明Item 声明我们可能用到的所有字段,包括管理字段等.管理字段可以让我们清楚何时(date).何地(url server)及如何(spider)执行爬去,此外,还可以自动完成诸如使item失效.规划新的抓取迭代或是删除来自有问题的爬虫的item. 管理字段 Pytho

windows下scrapy框架学习笔记—&#39;scrapy&#39; 不是内部或外部命令

最近几天在深入的学习scrapy框架,但是装完各种需要的基础包之后却发现scrapy命令在别的路径下都用不了,我一开始是把python安装在F:\Python路径下的,安装了scrapy后它默认都会安装在这个路径下,scrapy在路径F:\Python\Scripts路径下,我的scrapy命令只能在此路径下用,因此创建什么工程也都只能在此文件下. 想了一下它的工作原理:它在F:\Python\Scripts路径下,就会在Scripts文件下存在一个scrapy批处理文件,那么在DOS下想要命令

Linux系统理解以及Linux系统学习心得

原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 说一下我对Linux系统的理解 1.加载Linux内核准备:在加载基本输入输出模块(BIOS)之后,从磁盘的引导扇区读入操作系统的代码文件块到内存中,之后开始整个系统的初始化. 2.main.c的start_kernel函数是整个操作系统的入口,这也与Linux是基于C语言的特性相符,start_kernel具体做的动作很多

如何系统学习java体系?

如何系统学习java体系? | 浏览:1248 | 更新:2013-08-26 14:56 | 标签:java 1 2 3 4 分步阅读 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,它在工业界应用非常广泛,掌握好java这门技术,你能轻松找一份java程序员的工作. 工具/原料 一些书.一台电脑 方法/步骤 学java首先你要学 J2SE,它是java体系的基础,也是重中之重.很多人往往不重视基础,其实这是舍本逐末的做法.说这么多就是希望大家能重视基础,能在这条路上走的更远.

Linux系统学习日志Day01

Day01   Linux系统学习日志 (一)  Linux历史 创始人:林纳斯·托瓦兹 时间:1991 年10 月5 日(对外公开时间) 现状:多版本,有redhat.centos.Ubuntu.fedora (二)  Linux认证 管理员:RHCSA 需要掌握的知识: Linux的命令和日常维护,包括安装操作系统.构建网络连接.管理物理存储和执行基础安全管理. 工程师:RHCE 需要掌握的知识: RH124红帽企业Linux基础 RH134红帽企业Linux系统管理 RH254红帽企业Li

Linux系统学习笔记:序

Linux系统学习笔记:序 ??Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统. 本人使用的Linux为Ubuntu,主要以<APUE>(第3版)为学习蓝本. 1. Unix/Linux 体系结构 如图: 内核的接口被称为系统调用.公用函数库构建在

java I/O 系统学习总结

一直说自己要学习.整理java I/O的知识,但一直懒于学习,懒于动手整理:但当自己认真学习.复习.整理后心情豁然开朗.愉悦,因为觉得自己总算对这部分的知识有个初步的了解了,也总算可以将自己学习到的信息分享给大家,因为只有分享出来才能得到更多的指正,我才能更加进步!祝贺一下自己!!!当然,后续工作生活中需要不断练习,才可以使学习到的知识学以致用!加油! 我是以XMIND脑图的形式整理知识,但一直不知道博客园中如何导入脑图,那我这次就先以附件的形式分享自己的JAVA I/O脑图,后续分享中再不断探