前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python爬虫----(3. scrapy框架,简单应用)

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

作者头像
lpe234
发布2020-07-27 17:04:32
4220
发布2020-07-27 17:04:32
举报
文章被收录于专栏:若是烟花若是烟花

(1)创建scrapy项目

代码语言:javascript
复制
scrapy startproject getblog

(2)编辑 items.py

代码语言:javascript
复制
# -*- 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/

代码语言:javascript
复制
# 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)运行,

代码语言:javascript
复制
scrapy crawl blog  # 即可

(5)输出文件。

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

代码语言:javascript
复制
# 输出文件位置
FEED_URI = 'blog.xml'
# 输出文件格式 可以为 json,xml,csv
FEED_FORMAT = 'xml'

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档