0

Scrapyを使用してWebサイトからデータを取得し、そのデータをMicrosoft SQL Serverデータベースに保存することは可能ですか?

はいの場合、これが行われている例はありますか?それは主にPythonの問題ですか?つまり、SQL Serverデータベースに保存されているPythonのコードを見つけた場合、Scrapyは同じことを実行できますか?

4

2 に答える 2

2

はい。ただし、scrapy はデータベースに書き込むアイテム パイプラインを提供しないため、コードを自分で作成する必要があります。

プロセスをより詳細に説明しているスクレイピー ドキュメントのアイテム パイプラインページを読んでください (ここでは例としてJSONWriterPipelineを示します)。基本的に、(PyODBC のようなものを使用して) SQL Server データベースに書き込むコードをいくつか見つけてください。それを適応させて、アイテムを SQL Server データベースに直接出力するカスタム アイテム パイプラインを作成できるはずです。

于 2013-02-07T11:14:42.413 に答える
2

ここでは非常に遅く、完全に自己宣伝していますが、これは誰かを助けることができると思います. スクレイピングされたアイテムをデータベースに保存するための小さなスクレイピー拡張機能を作成しました。スクレイピー-sqlitem

とても使いやすいです。

pip install scrapy_sqlitem

SqlAlchemy テーブルを使用して Scrapy アイテムを定義する

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_1_1/core/tutorial.html#define-and-create-tables

于 2015-08-15T01:24:04.527 に答える