我正在使用 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)
效果是一样的,代码更少。
