1

我正在使用Scrapy爬网网站。我需要抓取的链接是http://www.somesite.com/details.html?pageId=<some_integer_id>. some_integer_idextends from 1to的值100(不完全是 100)。我要做的是:

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_urls这样的Scrapy

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 回答