spider.pyを使用して、start_urlにMYSQLテーブルのSELECTを挿入しようとしています。私が "scrapy runspider spider.py"を実行すると、出力がなくなり、エラーがなくなっただけです。Python Scrapy - mysqlからstart_urlsを作成する
私はpythonスクリプトでSELECTクエリをテストし、start_urlにはMYSQLテーブルからのエントリが入力されます。
spider.py
from scrapy.spider import BaseSpider
from scrapy.selector import Selector
import MySQLdb
class ProductsSpider(BaseSpider):
name = "Products"
allowed_domains = ["test.com"]
start_urls = []
def parse(self, response):
print self.start_urls
def populate_start_urls(self, url):
conn = MySQLdb.connect(
user='user',
passwd='password',
db='scrapy',
host='localhost',
charset="utf8",
use_unicode=True
)
cursor = conn.cursor()
cursor.execute(
'SELECT url FROM links;'
)
rows = cursor.fetchall()
for row in rows:
start_urls.append(row[0])
conn.close()
ありがとう応答のために。それはうまくいきました。私は 'def populate_start_urls(self、url):'を 'def start_requests(self):'に変更するだけでした。私はこれが私が投稿したコードに最も近いので、これを受け入れたものとしてマークしました。 – maryo
ブロードキャストする22Mのウェブサイトがある場合、どうすればできますか?私はあなたが一度にiterationg 1000でそれをしなければならないと思います。 start_requestsを使用して反復する方法を示してください。 –