python爬虫----(3. scrapy框架,简单应用)

(1)创建scrapy项目

scrapy startproject getblog

(2)编辑 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

from scrapy.item import Item, Field

class BlogItem(Item):
    title = Field()
    desc = Field()

(3)在 spiders 文件夹下,创建 blog_spider.py

!!需要熟悉下xpath选择,感觉跟JQuery选择器差不多,但是不如JQuery选择器用着舒服

w3school教程: http://www.w3school.com.cn/xpath/

# coding=utf-8

from scrapy.spider import Spider
from getblog.items import BlogItem
from scrapy.selector import Selector

class BlogSpider(Spider):
    # 标识名称
    name = ‘blog‘
    # 起始地址
    start_urls = [‘http://www.cnblogs.com/‘]

    def parse(self, response):
        sel = Selector(response) # Xptah 选择器
        # 选择所有含有class属性,值为‘post_item’的div 标签内容
        # 下面的 第2个div 的 所有内容
        sites = sel.xpath(‘//div[@class="post_item"]/div[2]‘)
        items = []
        for site in sites:
            item = BlogItem()
            # 选取h3标签下,a标签下,的文字内容 ‘text()’
            item[‘title‘] = site.xpath(‘h3/a/text()‘).extract()
            # 同上,p标签下的 文字内容 ‘text()’
            item[‘desc‘] = site.xpath(‘p[@class="post_item_summary"]/text()‘).extract()
            items.append(item)
        return items

(4)运行,

scrapy crawl blog  # 即可

(5)输出文件。

在 settings.py 中进行输出配置。

# 输出文件位置
FEED_URI = ‘blog.xml‘
# 输出文件格式 可以为 json,xml,csv
FEED_FORMAT = ‘xml‘

输出位置为项目根文件夹下。

-- 2014年08月20日05:51:46

python爬虫----(3. scrapy框架,简单应用)

时间: 2024-10-07 04:03:29

python爬虫----(3. 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框架

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爬取)

最近看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

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

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

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

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

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

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

python爬虫的一个常见简单js反爬

python爬虫的一个常见简单js反爬 我们在写爬虫是遇到最多的应该就是js反爬了,今天分享一个比较常见的js反爬,这个我已经在多个网站上见到过了. 我把js反爬分为参数由js加密生成和js生成cookie等来操作浏览器这两部分,今天说的是第二种情况. 目标网站 列表页url:http://www.hnrexian.com/archives/category/jk. 正常网站我们请求url会返回给我们网页数据内容等,看看这个网站返回给我们的是什么呢? 我们把相应中返回的js代码格式化一下,方便查