Scrapy Piplines处理数据

时间:2018-09-05 10:25:10

标签: python scrapy

在写了搜寻器文件,项目文件,点线文件等之后,我想编写一个具有抓取性的搜寻器。我想将数据保存到数据库中,但是发现item ['url的数据类型']实际上是字符串类型,该字符串包含列表,我无法获取内部数据,也找不到问题所在。

import pymysql
from . import settings


class JumiaspiderPipeline(object):

def __init__(self):
    self.conn=pymysql.connect(
        host=settings.MYSQL_HOST,
        db=settings.MYSQL_DBNAME,
        user=settings.MYSQL_USER,
        passwd=settings.MYSQL_PASSWORD,
        charset='utf8',
        use_unicode=False
    )
    self.cursor=self.conn.cursor()

def process_item(self, item, spider):
    self.insertdata(item)
    return item

def insertdata(self,item):
    sql="insert into jumia_scrapy (url) values (" +item['url']+")"
    print(sql)
    print(type(item['url'])
    self.cursor.execute(sql)
    self.conn.commit()

为什么item['url']的类型为str?我无法获取列表数据。

2 个答案:

答案 0 :(得分:0)

使用更简单的管道,例如SQLAlchemy或基于SQLAlchemy的数据集。

带有数据集的示例: SQLAlchemy/dataset how to specify created table

答案 1 :(得分:0)

您应该在项目解析函数中分配如下网址。

item["url"] = response.url