python3系でscrapy1.5を使っています
pipelines.pyのdefopen_spiderでmysqlに接続を行いspider.pyでmysqlのテーブルに入っているurl群をdef start_requestsでfor文で回して取り出していこうと思っています。
###該当のソースコード
def open_spider(self, spider): settings = spider.settings params = { 接続内容 } self.connection = MySQLdb.connect(**params) self.cursor = self.connection.cursor() self.cursor.execute('select * from テーブル名') all_data = self.cursor.fetchall()
###該当のソースコード
def start_requests(self): for one_data in all_data: yield scrapy.Request( one_data[~],#テーブルのurl格納カラムからurlを取得 callback=self.parse )
これですとstart_requestsにall_dataが無いよと怒られてしまうのですが、どうすればopen_spiderでdbに接続してテーブルからurl群を抜き出しstart_requestsで回せれるようになるのでしょうか?
spiderでmysqlに接続をしてurl群をforで回して取り出すやり方はわかるのですがpipelinesを使ったやり方が知りたいです
あなたの回答
tips
プレビュー