Scrapy +更改请求参数

bdh*_*har 1 python scrapy

我正在Scrapy用来浏览一个网站.我需要抓取的链接是表单http://www.somesite.com/details.html?pageId=<some_integer_id>.从的值some_integer_id延伸1100(不完全是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
Run Code Online (Sandbox Code Playgroud)

2.使用此功能设置的值start_urlsScrapy是这样的:

def __init__(self):
    self.start_urls = self.generateURLs()
Run Code Online (Sandbox Code Playgroud)

这是推荐使用的方式,Scrapy还是有其他更好的方法来实现这一点,我只需要更改请求参数的值?

谢谢.

Sja*_*aak 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)
Run Code Online (Sandbox Code Playgroud)

效果是一样的,代码更少.