本文整理汇总了Python中utils.Utils.getLineNo方法的典型用法代码示例。如果您正苦于以下问题:Python Utils.getLineNo方法的具体用法?Python Utils.getLineNo怎么用?Python Utils.getLineNo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类utils.Utils
的用法示例。
在下文中一共展示了Utils.getLineNo方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: startFetchingProducts
# 需要导入模块: from utils import Utils [as 别名]
# 或者: from utils.Utils import getLineNo [as 别名]
def startFetchingProducts(self):
start_time = time.time()
Utils.printMsg(self._name, "Started", Utils.getLineNo())
success = False
while success == False:
try:
while True:
proxy = self._getProxy()
try:
jumboMainPage = Utils.makeGetRequest(self._session, self._url, proxy)
break
except requests.ConnectionError:
print traceback.format_exc()
self._failedProxies.append(proxy)
pass
soupJumbo = BeautifulSoup(jumboMainPage)
categorias = soupJumbo.findAll("a", {"class": "btCategoria"})
self._updateViewStateKey(soupJumbo)
success = True
except Exception, e:
Utils.printMsg(self._name, "Nao consegui encontrar categorias!", Utils.getLineNo())
Utils.printMsg(self._name, str(e), Utils.getLineNo())
示例2: startFetchingProducts
# 需要导入模块: from utils import Utils [as 别名]
# 或者: from utils.Utils import getLineNo [as 别名]
def startFetchingProducts(self):
start_time = time.time()
Utils.printMsg(self._name, "Started", Utils.getLineNo())
success = False
while (success == False):
try:
while True:
proxy = self._getProxy()
try:
continentMainPage = Utils.makeGetRequest(self._session, self._url, proxy)
break
except requests.ConnectionError:
print traceback.format_exc()
self._failedProxies.append(proxy)
pass
soupContinente = BeautifulSoup(continentMainPage, "lxml")
categorias = soupContinente.find("ul", { "id" : "categoryMenu" }).findAll("li")
success = True
except Exception, e:
Utils.printMsg(self._name, "Nao consegui encontrar categorias!", Utils.getLineNo())
Utils.printMsg(self._name, str(e), Utils.getLineNo())
示例3: _updateViewStateKey
# 需要导入模块: from utils import Utils [as 别名]
# 或者: from utils.Utils import getLineNo [as 别名]
def _updateViewStateKey(self, soupObj):
viewStateKeyObj = soupObj.find("input", {"id": "__VIEWSTATE_KEY"})
try:
if viewStateKeyObj["value"] != self._viewStateKey:
self._viewStateKey = viewStateKeyObj["value"]
Utils.printMsg(self._name, "ViewStateKey updated: " + self._viewStateKey, Utils.getLineNo())
except:
pass
示例4: _getProdutosFromCat
# 需要导入模块: from utils import Utils [as 别名]
# 或者: from utils.Utils import getLineNo [as 别名]
#.........这里部分代码省略.........
nome = Utils.strip(product.find("a", {"class": "titProd"}).text)
if nome == "":
raise Exception("")
except:
nome = None
# Skip this product if it is ineligable
continue
# Produto - URL
try:
urlProduto = Utils.strip(product.find("a", {"class": "titProd"})["href"])
except:
urlProduto = None
# Produto - Preco
try:
precoTxt = Utils.strip(product.find("div", {"class": "preco"}).text)
precos = re.findall(r"\d+", precoTxt)
precoProduto = (float(precos[0]) * 100 + float(precos[1])) / 100
except:
precoProduto = None
# Produto - Preco/Kg
try:
precoKgTxt = Utils.strip(product.find("div", {"class": "prodkg"}).text)
precoKg = float(re.findall(ur"\d{1,4}[,.]\d{1,4}", precoKgTxt)[0].replace(",", "."))
except:
precoKg = None
# Produto - Peso
try:
peso = Utils.strip(product.find("div", {"class": "gr"}).text)
except:
peso = None
# Produto - ID
try:
idProduto = Utils.strip(re.findall(ur"\d+$", url)[0])
except:
idProduto = -1
# Produto - Imagem
try:
imagem = self._domain + Utils.strip(product.find("a", {"id": "lProdDetail"}).find("img")["src"])
except:
imagem = None
# Produto - Marca
try:
marca = Utils.strip(product.find("div", {"class": "titMarca"}).text).lower()
except:
marca = None
# Save to DB
produtoDB = models.Produto(
nome=nome,
marca=marca,
preco=precoProduto,
preco_kg=precoKg,
peso=peso,
url_pagina=urlProduto,
url_imagem=imagem,
desconto=None,
categoria_pai=catDB,
hiper=self._hiperRef,
latest_update=timezone.now(),
)
Utils.saveObjToDB(produtoDB)
Utils.logProdutos(
self._name,
Utils.toStr(nome)
+ Utils.logSeparator
+ Utils.toStr(marca)
+ Utils.logSeparator
+ Utils.toStr(precoProduto)
+ Utils.logSeparator
+ Utils.toStr(precoKg)
+ Utils.logSeparator
+ Utils.toStr("")
+ Utils.logSeparator
+ Utils.toStr(peso)
+ Utils.logSeparator
+ Utils.toStr(idProduto)
+ Utils.logSeparator
+ Utils.toStr(urlProduto)
+ Utils.logSeparator
+ Utils.toStr(imagem),
)
nrProdutosParsed += 1
Utils.printMsg(
self._name,
catDB.nome + "-" + "Pagina [" + currentPage + "]: " + str(nrProdutosParsed) + " produtos",
Utils.getLineNo(),
)
# new page, reset session
self._session = requests.Session()
示例5: str
# 需要导入模块: from utils import Utils [as 别名]
# 或者: from utils.Utils import getLineNo [as 别名]
hiper=self._hiperRef,
latest_update=timezone.now(),
)
Utils.saveObjToDB(subSubCatDB)
# SubSubCategoria - Produtos
self._getProdutosFromCat(subSubCatDB)
currentSubSubCat += 1
currentSubCat += 1
currentCat += 1
Utils.printMsg(self._name, "Finished fetching products of: " + Utils.toStr(catName), Utils.getLineNo())
Utils.printMsg(
self._name, "-" + "Finished - Elapsed: " + str(time.time() - start_time) + " seconds", Utils.getLineNo()
)
def _getProdutosFromCat(self, catDB):
if not Utils.validUrl(catDB.url):
return False
currentPage = ""
nextPage = "1"
singlePage = False
while nextPage != "" and nextPage != currentPage and singlePage == False:
productsPage = self._getProdutsPage(nextPage, catDB.url)
productsPageSoup = BeautifulSoup(productsPage)
self._updateViewStateKey(productsPageSoup)
# update current page and next page
示例6: _getProdutosFromCat
# 需要导入模块: from utils import Utils [as 别名]
# 或者: from utils.Utils import getLineNo [as 别名]
def _getProdutosFromCat(self, catDB, pagina=1, nrPages=None):
if not Utils.validUrl(catDB.url):
return True
if pagina != 1 and nrPages+1 == pagina:
return True
payload = {
'__EVENTTARGET': 'ProductsMain1:DataListPages:_ctl'+str((pagina - 1) * 2)+':linkButton',
'ProductsMain1:cmbPaginacao':'48'
}
while True:
proxy = self._getProxy()
try:
request = Utils.makePostRequest(self._session, catDB.url, payload, proxy)
break
except requests.ConnectionError:
self._failedProxies.append(proxy)
print traceback.format_exc()
soupPagina = BeautifulSoup(request)
error = soupPagina.find("span",{"id":"Error1_lblErrorDescription"})
if error:
Utils.printMsg(self._name, "ERROR IN REQUEST", Utils.getLineNo())
return False
#parse Produtos
produtos = soupPagina.findAll("div",{"class":"product-view"})
nrProdutosParsed = 0
for produto in produtos:
# Produto - Nome
try:
nome = Utils.strip(produto.find("a", {"class":"product-view-text-item"}).find(text=True))
if nome == "":
raise Exception("")
except:
nome = None
#Skip this product if it is ineligable
continue
# Produto - URL
try:
urlProduto = Utils.strip(produto.find("a")["href"])
urlProduto = self._domain + "/" + urlProduto
if urlProduto == "":
raise Exception("")
except:
urlProduto = None
# Produto - Preco
try:
precoProduto = float(re.findall(r'\d*[.,]\d*', Utils.strip(produto.find("div",{"class":"product-view-price"}).text).replace(",","."))[0])
except:
precoProduto = None
# Produto - Preco/Kg
try:
precoKg = float(re.findall(r'\d*[.,]\d*', Utils.strip(produto.find("span",{"class":"produtoListaPrecoUnit"}).text).replace(",","."))[0])
except:
precoKg = None
# Produto - Peso
try:
peso = Utils.strip(produto.find("span",{"class":"product-package"}).text)
except:
peso = None
# Produto - ID
try:
idProduto = int(re.findall(r'productId=\d+', urlProduto, re.IGNORECASE)[0].replace("productId=",""))
except:
idProduto = -1
# Produto - Imagem
try:
imagem = self._domain + Utils.strip(produto.find("img")["src"].replace("\\","/").replace("/med/","/lar/").replace("/Med/","/Lar/").replace("_med","_lar").replace("_Med","_Lar"))
if imagem == "":
raise Exception("")
except:
imagem = None
# Produto - Marca
try:
marca = Utils.strip(produto.find("span",{"class":"product-logo"}).text)
if marca == "":
raise Exception("")
except:
marca = None
# Produto - Desconto
try:
fraseDesconto = re.findall(r'desconto\s*.*\d*[.,]\d*', Utils.strip(produto.text), re.IGNORECASE)[0]
desconto = float(re.findall(r'\d*[.,]\d*', fraseDesconto)[0].replace(",","."))
except:
desconto = None
# Save to DB
#.........这里部分代码省略.........