Skip to main content
 首页 » 编程设计

python之Scrapy + 更改请求参数

2025年05月04日15duanxz

我正在使用 Scrapy爬取一个网站。我需要抓取的链接的形式为 http://www.somesite.com/details.html?pageId=<some_integer_id> . some_integer_id 的值从 1 延伸至 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或者当我只需要更改请求参数的值时,还有其他更好的方法吗?

谢谢。

请您参考如下方法:

这个方法听起来不错,没有“黄金”方法。

但是,考虑到 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) 

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