Scrapyを使用してWebサイトからデータを取得し、そのデータをMicrosoft SQL Serverデータベースに保存することは可能ですか?
はいの場合、これが行われている例はありますか?それは主にPythonの問題ですか?つまり、SQL Serverデータベースに保存されているPythonのコードを見つけた場合、Scrapyは同じことを実行できますか?
Scrapyを使用してWebサイトからデータを取得し、そのデータをMicrosoft SQL Serverデータベースに保存することは可能ですか?
はいの場合、これが行われている例はありますか?それは主にPythonの問題ですか?つまり、SQL Serverデータベースに保存されているPythonのコードを見つけた場合、Scrapyは同じことを実行できますか?
はい。ただし、scrapy はデータベースに書き込むアイテム パイプラインを提供しないため、コードを自分で作成する必要があります。
プロセスをより詳細に説明しているスクレイピー ドキュメントのアイテム パイプラインページを読んでください (ここでは例としてJSONWriterPipelineを示します)。基本的に、(PyODBC のようなものを使用して) SQL Server データベースに書き込むコードをいくつか見つけてください。それを適応させて、アイテムを SQL Server データベースに直接出力するカスタム アイテム パイプラインを作成できるはずです。
ここでは非常に遅く、完全に自己宣伝していますが、これは誰かを助けることができると思います. スクレイピングされたアイテムをデータベースに保存するための小さなスクレイピー拡張機能を作成しました。スクレイピー-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