2

私は Scrapy が初めてで、何をする必要があるかどこにも見つかりません。

非常によく似た一連の URL をスクレイピングする必要がありますが、ある URL から別の URL にアクセスできません。たとえば、次の URL をスクレイピングする必要があります。

www.example.com/1.html
www.example.com/2.html
(...)
www.example.com/1000.html

しかし、最初のページには他のページへのリンクがありません。つまり、独立しています。

これどうやってするの?(私の英語でごめんなさい)

このようなもの:

class MySpider(BaseSpider):
   name = 'example.com'
   allowed_domains = ['example.com']
   Start_urls = [
      'http://www.example.com/1.html',
      'http://www.example.com/2.html',
      'http://www.example.com/3.html',
   ]

ただし、3 つ以上の異なるページの場合

ありがとう!

4

2 に答える 2

3

ページがすべてその形式 (www.example.com/x.html) である場合、次のようにすることができます。

start_urls = ['http://www.example.com/%s.html' % page for page in xrange(1, 1000)]

于 2013-01-14T15:49:52.180 に答える
2

Start_urls ではなく start_requests をオーバーライドする必要があります。次に例を示します。

def start_requests(self):
    base_url = 'http://www.example.com/
    for i in xrange(1, 10000):
        url = base_url + str(i) + '.html'
        yield Request(url, dont_filter=False, callback='parse_method')

さらに、キューから URL リストを提供できます。

def start_requests(self):
    while True:
        url = queue.get()
        yield Request(url, dont_filter=False, callback='parse_method')

大量の URL を同時にスケジュールすると、scrapy のスケジューラーが過負荷になる可能性があるため、注意してください。

于 2013-01-18T07:10:40.177 に答える