scrapy 爬虫之坑

2018-01-06  本文已影响128人  风继续吹ii

scrapy 的 field 可以设置任何类型

可以先创建一个数组变量

test = []

然后将test赋值给field 即可使用。

--------------------------------------------------------------------------------------------------------------------------------------

如果存在页面间的传值问题,可以使用 yield 中的meta

metas={'a':1,'b':2}

yield(url,callback=yourcallback,meta=metas, dont_filter=True)

--------------------------------------------------------------------------------------------------------------------------------------

数据库设置问题

例 mongo

```

#setings.py

ITEM_PIPELINES = {

      'xhs.pipelines.XhsPipeline': 300,

      'xhs.pipelines.XhsPipeline':300

}

MONGODB_SERVER = 'localhost'

MONGODB_PORT = 27017

MONGODB_DB = ''#你的数据库名称

MONGODB_COLLECTION = '' #你的collections

# piplines.py

import pymongo

class XhsPipeline(object):

    def __init__(self):

        connection = pymongo.MongoClient(

            settings['MONGODB_SERVER'],

            settings['MONGODB_PORT']

        )

        db = connection[settings['MONGODB_DB']]

        self.collection = db[settings['MONGODB_COLLECTION']]

        # self.coll = db[settings['MONGO_COLL']]  # 获得collection的句柄

        # self.db = db.primer

    def process_item(self, item, spider):

        pass #写你的代码

```

例 mysql  这次储存内容报错了,报错内容没有保存 ,换的mongo

```

import pymysql

def dbHandle():

    conn = pymysql.connect(

        host='localhost',

        user='root',

        passwd='',

        charset='utf8',

        use_unicode=True

    )

    return conn

class XhsPipeline(object):

    def process_item(self,item,spider):

        dbObject = dbHandle()

        cursor = dbObject.cursor()

        # sql=sql语句

        sql='insert into 库.表(字段名称) values (%s,%s,%s,%s,%s)'

        try:

            cursor.execute(sql,(item[字段名称]))

            dbObject.commit()

        except Exception as e:

            print(e)

            dbObject.rollback()

```

为什么打出来不是代码块呢啊。。。

可以去这里看 哒哒哒社区

上一篇下一篇

猜你喜欢

热点阅读