python爬虫----(2. scrapy框架)

Scrapy框架,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

刚开始学习这个框架。不太好评论。只是感觉这个框架有些Java的感觉,需要太多的其他模块的支持。

(一)创建 scrapy 项目

# 使用 scrapy startproject scrapy_test
├── scrapy_test
│   ├── scrapy.cfg
│   └── scrapy_test
│       ├── __init__.py
│       ├── items.py
│       ├── pipelines.py
│       ├── settings.py
│       └── spiders
│           ├── __init__.py
# 进行创建 scrapy 项目

(二)说明

scrapy.cfg: 项目配置文件
items.py: 需要提取的数据结构定义文件
pipelines.py:管道定义,用来对items里面提取的数据做进一步处理,如保存等
settings.py: 爬虫配置文件
spiders: 放置spider的目录

(三)依赖包

依赖包比较麻烦。

# python-dev 包的安装
apt-get install python-dev

# twisted, w3lib, six, queuelib, cssselect, libxslt

pip install w3lib
pip install twisted
pip install lxml
apt-get install libxml2-dev libxslt-dev  
apt-get install python-lxml
pip install cssselect 
pip install pyOpenSSL  
sudo pip install service_identity

# 安装好之后,便可使用 scrapy startproject test 进行创建项目

(四)抓取实例。(原文地址: http://blog.csdn.net/HanTangSongMing/article/details/24454453  )

Git: https://github.com/maxliaops/scrapy-itzhaopin

(1)创建scrapy项目

[email protected]:~/Python/spit$ scrapy startproject itzhaopin
New Scrapy project ‘itzhaopin‘ created in:
    /home/dizzy/Python/spit/itzhaopin

You can start your first spider with:
    cd itzhaopin
    scrapy genspider example example.com
[email protected]:~/Python/spit$ 

[email protected]:~/Python/spit$ cd itzhaopin
[email protected]:~/Python/spit/itzhaopin$ tree
.
├── itzhaopin
│   ├── __init__.py
│   ├── items.py
│   ├── pipelines.py
│   ├── settings.py
│   └── spiders
│       └── __init__.py
└── scrapy.cfg

# scrapy.cfg: 项http://my.oschina.net/lpe234/admin/new-blog目配置文件
# items.py: 需要提取的数据结构定义文件
# pipelines.py:管道定义,用来对items里面提取的数据做进一步处理,如保存等
# settings.py: 爬虫配置文件
# spiders: 放置spider的目录

(2)定义要抓取的数据结构 items.py

from scrapy.item import Item, Field
# 定义我们要抓取的数据
class TencentItem(Item):
    name = Field()  # 职位名称
    catalog = Field()  # 职位类别
    workLocation = Field()  # 工作地点
    recruitNumber = Field()  # 招聘人数
    detailLink = Field()  # 职位详情链接
    publishTime = Field()  # 发布时间

(3)实现Spider类

Spider是继承自 scarpy.contrib.spiders.CrawlSpider 的Python类,有3个必须定义的成员。

name : 名称,spider的标识。

start_urls :  一个url列表,spider从这些网页开始抓取

parse() : 一个方法。当start_urls里面的网页抓取下来之后需要调用这个方法来解析网页内容,同时需要返回下一个需要抓取的网页,或者返回items列表。

在spiders目录下面新建一个spider,tencent_spider.py :

#coding=utf-8

from scrapy.spider import BaseSpider

class DmozSpider(BaseSpider):
    name = ‘dmoz‘
    allowed_domains = [‘dmoz.org‘]
    start_urls = [
        ‘http://www.dmoz.org/Computers/Programming/Languages/Python/Books/‘,
        ‘http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/‘
    ]

    def parse(self, response):
        filename = response.url.split(‘/‘)[-2]
        open(filename, ‘wb‘).write(response.info)

这个简单一些。 使用

scrapy crawl dmoz # 即可运行spider


闲来无事看Q空间,无意中又看到一大学同学。唉,好生佩服之感。

之前自己一直吵着要去黄山要去西藏,结果哪都没去。

前几天看到那个同学的Q空间状态,大约是江南某地。没太在意,然后看到踪迹又向南偏移,刚才看到到云南那边了。看评论说,真准备进藏。不禁感到惭愧。遂做此语!以明吾心!甚是惭愧,已致徒生敬意。

                  -- 2014年08月20日01:58:27

python爬虫----(2. scrapy框架),布布扣,bubuko.com

时间: 2024-10-12 16:54:16

python爬虫----(2. scrapy框架)的相关文章

python爬虫之scrapy框架

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy 使用了 Twisted异步网络库来处理网络通讯.整体架构大致如下 Scrapy主要包括了以下组件: 引擎

Python爬虫进阶(Scrapy框架爬虫)

准备工作:           配置环境问题什么的我昨天已经写了,那么今天直接安装三个库                        首先第一步:                            (我们要用到scrapy框架,在python里调用windows 命令,使用mongodb存储爬到的数据 )                                  进入DOS python/Script>路径下  输入命令: python/Script> pip install p

python爬虫随笔-scrapy框架(1)——scrapy框架的安装和结构介绍

scrapy框架简介 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试.(引用自:百度百科) scrapy官方网站:https://scrapy.org/ scrapy官方文档:https://doc.scrapy.org/en/latest/ scrapy框架安装 首先我们安装scrapy,使用如下命令 pip install scrapy 此时很多人应该都会遇到如

(转)python爬虫----(scrapy框架提高(1),自定义Request爬取)

摘要 之前一直使用默认的parse入口,以及SgmlLinkExtractor自动抓取url.但是一般使用的时候都是需要自己写具体的url抓取函数的. python 爬虫 scrapy scrapy提高     最近看scrappy0.24官方文档看的正心烦的时候,意外发现中文翻译0.24文档,简直是福利呀~ http://scrapy-chs.readthedocs.org/zh_CN/0.24/     结合官方文档例子,简单整理一下: ? 1 2 3 4 5 6 7 8 9 10 11 1

python爬虫----(scrapy框架提高(1),自定义Request爬取)

最近看scrappy0.24官方文档看的正心烦的时候,意外发现中文翻译0.24文档,简直是福利呀~ http://scrapy-chs.readthedocs.org/zh_CN/0.24/ 结合官方文档例子,简单整理一下: import scrapy from myproject.items import MyItem class MySpider(scrapy.Spider):     name = 'myspider'     start_urls = (         'http://

python爬虫之Scrapy框架中的Item Pipeline用法

当Item在Spider中被收集之后, 就会被传递到Item Pipeline中进行处理. 每个item pipeline组件是实现了简单的方法的python类, 负责接收到item并通过它执行一些行为, 同时也决定此item是否继续通过pipeline, 或者被丢弃而不再进行处理. item pipeline的主要作用 : 1. 清理html数据 2. 验证爬取的数据 3. 去重并丢弃 4. 将爬取的结果保存到数据库中或文件中 编写自己的item pipeline : process_item

Python网络爬虫之Scrapy框架(CrawlSpider)

目录 Python网络爬虫之Scrapy框架(CrawlSpider) CrawlSpider使用 爬取糗事百科糗图板块的所有页码数据 Python网络爬虫之Scrapy框架(CrawlSpider) 提问:如果想要通过爬虫程序去爬取"糗百"全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法二:基于CrawlSpider的自动爬取进行实现(更加简洁和高效). CrawlSpider使

爬虫学习 16.Python网络爬虫之Scrapy框架(CrawlSpider)

爬虫学习 16.Python网络爬虫之Scrapy框架(CrawlSpider) 引入 提问:如果想要通过爬虫程序去爬取"糗百"全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法二:基于CrawlSpider的自动爬取进行实现(更加简洁和高效). 今日概要 CrawlSpider简介 CrawlSpider使用 基于CrawlSpider爬虫文件的创建 链接提取器 规则解析器 今日详

网络爬虫之scrapy框架详解,scrapy框架设置代理

twisted介绍 Twisted是用Python实现的基于事件驱动的网络引擎框架,scrapy正是依赖于twisted, 它是基于事件循环的异步非阻塞网络框架,可以实现爬虫的并发. twisted是什么以及和requests的区别: request是一个python实现的可以伪造浏览器发送Http请求的模块,它封装了socket发送请求 twisted是基于时间循环的异步非阻塞的网络框架,它也封装了socket发送请求,但是他可以单线程的完成并发请求. twisted的特点是: 非阻塞:不等待

python爬虫—使用scrapy爬虫框架

问题1.使用scrapy框架,使用命令提示符pip命令下载scrapy后,却无法使用scrapy命令,出现scrapy不是内部或外部命令.也不是可运行的程序 解决:一开始,我是把python安装在D:\python,安装了scrapy后他默认都会装在此路径下,然后scrapy在路径D:\python\Scripts路径下,而创建工程也只能在此目录下. 如果想让他在dos下想要命令运行成功的话,就的需要知道他在那里,那么这又得学习到环境变量path的作用.所以这就得在path上添加scrapy的地