需求:涉及到同一个网站的多页爬虫问题时,需要进行不同的Xpath解析操作时
考虑:可以设置参数,根据参数进行不同的跳转,如Java中的switch,python中有相似作用的字典,且效率更高
func_dict["跳转参数"],因为这个跳转参数是字符串,所以需要对item进行字符串转化
代码如下:
#创建字典 func_dict = {"0": self.parse_allQ, "1": self.parse_lastR, "2": self.parse_irmInf, "3": self.parse_interC, "4": self.parse_mostSR, "5": self.parse_microBl} for url_suffix in response.xpath("//div[@class='Menubox22']/ul/li"): url = "http://irm.cninfo.com.cn/ircs/" + re.findall(r"/(.+)", url_suffix.xpath('@onclick').extract_first().split('\'')[3])[0] #print "func_dict>>>>>>>>>>>>>>>>>>>", func_dict[str(item)] #根据参数跳转到不同的解析函数 yield scrapy.Request(url, callback=func_dict[str(item)]) item = item + 1