我正在使用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
的方法,还是在我只需要更改请求参数的值时还有其他更好的方法吗?
感谢。
答案 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)
效果相同,代码更少。