Beispiel #1
0
	def searchLink(self, strUrl):
		''' 反向搜索未找到数据爬取
		@params strUrl string 商品链接地址
		'''

		strModel = 'single'
		
		base.getProd(self, strUrl, strModel)

		# 判断参数是否正确,如果不正确,结束本次执行
		if not self.dicParams:
			return
			
		# 如果状态不存在,结束本次执行
		if not self.request_status:
			return

		# 判断请求状态,如果状态存在且值不等于200,通知API,将商品做下架处理
		if self.request_status and self.request_status != 200:
			self.setUnavailable(self.dicParams['jgb_asin'])
			return
			
		# 检测是否是验证码
		booStatus = self.checkCaptcha()
		if booStatus:
			base.getProd(self, strUrl, strModel)
			return
			
		self.getPageDom()
			
		print self.jsonEncode(self.dicProduct)
		intReturn = self.sendData(self.jsonEncode(self.dicProduct))
		
		# 判断是否删除请求商品ASIN对应的商品和索引
		self.delProd(self.dicParams['jgb_asin'], self.dicProduct['parent_asin'], self.dicProduct['sub_asin'])
		
		# 抓取子订单
		if self.dicProduct['sub_asin']:
			dicSubAsin = self.dicProduct['sub_asin']
			dicSubAsin.append(self.dicProduct['parent_asin'])
			for item in dicSubAsin:
				self.getPage(item, strModel)
Beispiel #2
0
	def getProd(self, strUrl, strModel = ''):
		''' 单品爬取

		@params strUrl string 商品链接地址
		'''

		base.getProd(self, strUrl, strModel)

		# 判断参数是否正确,如果不正确,结束本次执行
		if not self.dicParams:
			return
			
		# 如果状态不存在,结束本次执行
		if not self.request_status:
			return

		# 判断请求状态,如果状态存在且值不等于200,通知API,将商品做下架处理
		if self.request_status and self.request_status != 200:
			self.setUnavailable(self.dicParams['jgb_asin'])
			return

		# 检测是否是验证码
		booStatus = self.checkCaptcha()
		if booStatus:
			base.getProd(self, strUrl, strModel)
			return
			

		self.getPageDom()

		if not self.dicProduct['title']:
			self.outPut('no title, reload...', 'error')
			base.getProd(self, strUrl, strModel)
			return
			
		print self.jsonEncode(self.dicProduct)
		intReturn = self.sendData(self.jsonEncode(self.dicProduct))
		
		# 判断是否删除请求商品ASIN对应的商品和索引
		self.delProd(self.dicParams['jgb_asin'], self.dicProduct['parent_asin'], self.dicProduct['sub_asin'])
		
		# 抓取子订单
		if self.dicProduct['sub_asin']:
			dicSubAsin = self.dicProduct['sub_asin']
			dicSubAsin.append(self.dicProduct['parent_asin'])
			for item in dicSubAsin:
				self.getPage(item, strModel)

		# 发送邮件
		self.sendEmail(self.dicParams['email'], self.dicProduct['id'], self.dicParams['url'])

		# 更新单品数据爬取时间
		self.updateSingleTime(self.dicParams['single_id'])
Beispiel #3
0
	def getPage(self, strAsin, strModel):
		''' 获取页面

		@params strAsin string asin
		@params strCategory string 分类ID
		'''

		strUrl = self.strProdUrl + strAsin + '?psc=1&smid=ATVPDKIKX0DER|' + self.dicParams['category']
		base.getProd(self, strUrl, strModel)
		
		# 判断参数是否正确,如果不正确,结束本次执行
		if not self.dicParams:
			print 'no self.dicParams'
			return
			
		# 如果状态不存在,结束本次执行
		if not self.request_status:
			print 'no status'
			return

		# 判断请求状态,如果状态存在且值不等于200,通知API,将商品做下架处理
		if self.request_status and self.request_status != 200:
			self.setUnavailable(self.dicParams['jgb_asin'])
			return
			
		# 检测是否是验证码
		booStatus = self.checkCaptcha()
		if booStatus:
			base.getProd(self, strUrl, strModel)
			return

		self.getPageDom()
		
		if not self.dicProduct['title']:
			self.outPut('no title, reload...', 'error')
			base.getProd(self, strUrl, strModel)
			return

		print self.jsonEncode(self.dicProduct)
		intReturn = self.sendData(self.jsonEncode(self.dicProduct))