pyspider+MongoDB简单操作

这是一个使用pyspider框架爬取图片网站数据的示例,通过MysqlWirter和MongoWriter类实现数据存储到MySQL和MongoDB。程序首先设置请求头,然后定义爬取起始URL,逐层解析获取大分类、小分类和图片详情,最后将抓取结果存储到数据库。
摘要由CSDN通过智能技术生成
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2018-03-30 09:20:41
# Project: IvskyDemo

from pyspider.libs.base_handler import *

class MysqlWirter(object):
    def __init__(self):
        self.db = '创建db对象'
    def insert_result(self,result):
        # 将result数据写入数据库
        pass
    def __del__(self):
        # 关闭数据库
        # self.db.close()
        pass

class Handler(BaseHandler):

    # 准备请求头
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0',
        'Host':'www.ivsky.com'
    }

    crawl_config = {
    }
    mysql = MysqlWirter()

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl(
            'www.ivsky.com/tupian/',
            callback=self.big_categray,
            headers = self.headers
        )

    @config(age=10 * 24 * 60 * 60)
    def big_categray(self, response):
        # for循环遍历找到的所有标签
        for each in response.doc('.tpmenu>li>a').items():
            # 创建一个新的爬取任务
            self.crawl(
                # 获取标签的href属性值,把属性值作为url创建新任务
                each.attr.href,
                callback=self.small_categray,
                # save 可以将数据传递到下一个回调函数中,类似于scrapy中的meta
                save = {'big_cate':each.text()}

            )


    def small_categray(self, response):
        '''
        解析小分类
        :param response:
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值