Scrapy +更改请求参数

时间:2012-05-30 02:29:53

标签: python scrapy

我正在使用Scrapy抓取网站。我需要抓取的链接的格式为http://www.somesite.com/details.html?pageId=<some_integer_id>some_integer_id的值从1延伸到100(不完全是100)。我这样做是:

1.我创建了一个生成网址列表的函数:

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的方法,还是在我只需要更改请求参数的值时还有其他更好的方法吗?

感谢。

1 个答案:

答案 0 :(得分: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)

效果相同,代码更少。