Scrapy/Python и SQL Server

Можно ли получить данные с веб-сайтов с помощью Scrapy и сохранить эти данные в базе данных Microsoft SQL Server?

Если да, есть ли примеры того, как это делается? Это в основном проблема Python? то есть, если я найду какой-то код сохранения Python в базу данных SQL Server, то Scrapy сможет сделать то же самое?


person J86    schedule 07.02.2013    source источник
comment
Я не видел ни одного примера, но, поскольку он очищает XML, должно быть много SQL <-> XML примеров.   -  person Preet Sangha    schedule 07.02.2013
comment
Хорошая мысль, Прит, спасибо.   -  person J86    schedule 07.02.2013


Ответы (2)


Да, но вам придется написать код, чтобы сделать это самостоятельно, так как scrapy не предоставляет конвейер элементов, который записывает в базу данных.

Ознакомьтесь со страницей Item Pipeline из документации по scrapy, которая описывает процесс более подробно (вот JSONWriterPipeline в качестве примера). По сути, найдите какой-нибудь код, который записывает в базу данных SQL Server (используя что-то вроде PyODBC), и вы сможете адаптировать его для создания пользовательского конвейера элементов, который выводит элементы непосредственно в базу данных SQL Server.

person Talvalin    schedule 07.02.2013

Супер поздно и полностью самореклама здесь, но я думаю, что это может кому-то помочь. Я только что написал небольшое расширение scrapy для сохранения очищенных элементов в базе данных. scrapy-sqlitem

Он очень прост в использовании.

pip install scrapy_sqlitem

Определение элементов Scrapy с использованием таблиц SqlAlchemy

from scrapy_sqlitem import SqlItem

class MyItem(SqlItem):
    sqlmodel = Table('mytable', metadata
        Column('id', Integer, primary_key=True),
        Column('name', String, nullable=False))

Добавьте следующий конвейер

from sqlalchemy import create_engine

class CommitSqlPipeline(object):

    def __init__(self):
            self.engine = create_engine("sqlite:///")

    def process_item(self, item, spider):
            item.commit_item(engine=self.engine)

Не забудьте добавить конвейер в файл настроек и создать таблицы базы данных, если они не существуют.

http://doc.scrapy.org/en/1.0/topics/item-pipeline.html#activating-an-item-pipeline-component

http://docs.sqlalchemy.org/en /rel

pip install scrapy_sqlitem
1/core/tutorial.html#define-and-create-tables

person 12Ryan12    schedule 15.08.2015