python scrapy教程实例_Python Scrapy框架第一个入门程序示例

本文实例讲述了python Scrapy框架第一个入门程序。分享给大家供大家参考,具体如下:

首先创建项目:

scrappy start project maitian

第二步: 明确要抓取的字段items.py

import scrapy

class MaitianItem(scrapy.Item):

# define the fields for your item here like:

# name = scrapy.Field()

title = scrapy.Field()

price = scrapy.Field()

area = scrapy.Field()

district = scrapy.Field()

第三步:在spider目录下创建爬虫文件: zufang_spider.py

2.1 创建一个类,并继承scrapy的一个子类: scrapy.Spider

2.2 自定义爬取名, name="" 后面运行框架需要用到;

2.3 定义爬取目标网址

2.4 定义scrapy的方法

下面是简单项目:

import scrapy

from maitian.items import MaitianItem

class MaitianSpider(scrapy.Spider):

name = "zufang"

start_urls = ['http://bj.maitian.cn/zfall/PG1']

def parse(self, response):

for zufang_itme in response.xpath('//div[@class="list_title"]'):

yield {

'title': zufang_itme.xpath('./h1/a/text()').extract_first().strip(),

'price': zufang_itme.xpath('./div[@class="the_price"]/ol/strong/span/text()').extract_first().strip(),

'area': zufang_itme.xpath('./p/span/text()').extract_first().replace('㎡', '').strip(),

'district': zufang_itme.xpath('./p//text()').re(r'昌平|朝阳|东城|大兴|丰台|海淀|石景山|顺义|通州|西城')[0],

}

next_page_url = response.xpath(

'//div[@id="paging"]/a[@class="down_page"]/@href').extract_first()

if next_page_url is not None:

yield scrapy.Request(response.urljoin(next_page_url))

第四步: 在settings.py文件中设置数据保存到数据库

.

.

.

ITEM_PIPELINES = {'maitian.pipelines.MaitianPipeline': 300,}

MONGODB_HOST = '127.0.0.1'

MONGODB_PORT = 27017

MONGODB_DBNAME = 'maitian'

MONGODB_DOCNAME = 'zufang'

第五步:通过管道pipelines.py 连接上面的操作

import pymongo

from scrapy.conf import settings

class MaitianPipeline(object):

def __init__(self):

host = settings['MONGODB_HOST']

port = settings['MONGODB_PORT']

db_name = settings['MONGODB_DBNAME']

client = pymongo.MongoClient(host=host, port=port)

db = client[db_name]

self.post = db[settings['MONGODB_DOCNAME']]

def process_item(self, item, spider):

zufang = dict(item)

self.post.insert(zufang)

return item

其中 middlewares.py 文件暂不处理

以上简单的scrapy爬虫项目搭建完毕了

希望本文所述对大家基于Scrapy框架的Python程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值