我正在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
Run Code Online (Sandbox Code Playgroud)
2.使用此功能设置的值start_urls的Scrapy是这样的:
def __init__(self):
self.start_urls = self.generateURLs()
Run Code Online (Sandbox Code Playgroud)
这是推荐使用的方式,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)
Run Code Online (Sandbox Code Playgroud)
效果是一样的,代码更少.