1

私はScrapyウェブサイトをクロールするために使用しています。クロールする必要があるリンクの形式はhttp://www.somesite.com/details.html?pageId=<some_integer_id>. の値は~ から(厳密には 100 ではありません)some_integer_idまで拡張されます。私がすることはこれです:1100

1. URL のリストを生成する関数を作成します。

def generateURLs(self):
    url_list = []
    for i in range(1, 101):
        url_list.append('http://www.somesite.com/details.html?pageId=%d' % i)
    return url_list

2.この関数を使用して、の値を次start_urlsScrapyように設定します。

def __init__(self):
    self.start_urls = self.generateURLs()

これは推奨される使用方法Scrapyですか、それともリクエスト パラメータの値を変更する必要がある場合にこれを行うための他のより良い方法はありますか?

ありがとう。

4

1 に答える 1

7

この方法は問題ないように思えますが、「ゴールデン」な方法はありません。

ただし、Scrapy 呼び出し start_requests を考慮すると、次のような start_requests のオーバーライドを選択できます。

def start_requests(self):
    for i in range(1, 101):
        yield Request(url='http://www.somesite.com/details.html?pageId={0}'.format(i), callback=self.my_callback)

効果は同じですが、コードが少なくなります。

于 2012-05-30T07:49:32.133 に答える