Back-End

11 jan, 2016

Códigos Python para teste de interface mobile amigável

Publicidade

Olá, pessoal, estou de volta com outro script que pode ser útil para os proprietários de sites, especialistas em SEO, bem como pessoas normais como eu. Por meio dos códigos que escreveremos e discutiremos neste artigo, você será capaz de verificar se um site tem interface mobile amigável ou não. Bom, aqui eu ofereço um bônus. Com os códigos, você será capaz de enviar uma série de websites de uma só vez para teste instantâneo de interface mobile amigável. Por que isso é necessário? Aqui está a resposta. Na última atualização do algoritmo de busca do Google, o senhor das buscas considera agora interface mobile amigável como um fator importante para a classificação de um website.

Script Python para automatizar teste de interface mobile amigável

Antes de começar

Antes de começarmos a nossa codificação, vamos deixar algumas coisas claras. Nós escreveremos dois arquivos – um será de texto simples e outro será um arquivo Python. No arquivo de texto, iremos escrever os nomes dos domínios que desejamos enviar para o teste de interface mobile amigável, um em cada linha no formato dominio.com ou seja, sem www.

from json import loads 
import mechanize 
br = mechanize.Browser() 
br.set_handle_robots(False) 
br.addheaders = [("User-agent","Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13")] 

with open('websitesformobilefriendlytest.txt') as f: 
    for line in f: 
        google_results = br.open("https://www.googleapis.com/pagespeedonline/v3beta1/mobileReady?url=http://" + str(line)).read() 
        json_obj = loads(google_results) 
        if json_obj["ruleGroups"]["USABILITY"]["pass"] == True: 
            print "Congrats " + str(line) + " is mobile friendly" 
        else: 
            print str(line) + " is not mobile friendly"

1 – Linha 1 e 2

Estas são as instruções de importação, já que vamos utilizar o módulo mechanize para consultar a interface mobile amigável por meio de um navegador instanciado pelo módulo e a resposta será um JSON, por isso vamos importar uma grande quantidade de JSON.

2 – Linha de 3 a 5

Na linha 3, usamos o método Browser() do mechanize para instanciar um navegador. A linha 4 é uma declaração que diz para ignorar o arquivo robots.txt. Na linha 5, especificamos um agente de usuário.

3 – Linha de 7 a 14

A linha 7 abre o arquivo de texto onde previamente havíamos armazenado os nomes de domínio. Nós agora podemos referenciar o conteúdo do arquivo pela variável f.

A linha 8 é o início do ciclo que armazena o nome do domínio na linha da variável em cada interação.

Na linha 9, consultamos um nome de domínio/website para o teste de interface mobile amigável. A URL especificada irá retornar uma resposta do resultado do teste, que nós armazenamos em uma variável chamada google_results.

Na linha 10, lemos a resposta e guardamos como um objeto JSON na variável json_obj.

Agora na linha 11, temos uma instrução condicional para verificar se o site passou no teste de interface mobile amigável. O resultado do teste é um valor booleano, que é um valor para a chave “pass” que é novamente um valor para a chave “USABILITY”, que por sua vez é um valor para a chave “ruleGroups” no json_obj. Abaixo está o exemplo de como isso se parece.

{“ruleGroups” : {“USABILITY” : {“pass” : True/False}}}

Se o site passou no teste de interface mobile amigável, o valor será True. Com base no resultado, imprimiremos se o website tem interface mobile amigável ou não.

Testador de interface mobile amigável que grava o resultado em planilha Google

Bom, aqui está o código bônus. Deixe-me saber se você tem alguma dúvida sobre os códigos na seção de comentários abaixo. Além disso, aqui está um programa semelhante (é um script verificador de site WordPress) com uma explicação sobre os códigos que pode ajudá-lo a compreender e implementar esses códigos. Obrigado pela leitura.

from json import loads 
import mechanize 
import gdata.spreadsheet.service 
import datetime 
rowdict = {} 
rowdict['date'] = str(datetime.date.today()) 
spread_sheet_id = '13mX6ALRRtGlfCzyDNCqY-G_AqYV4TpE7rq1ZNNOcD_Q' 
worksheet_id = 'od6' 
client = gdata.spreadsheet.service.SpreadsheetsService() 
client.debug = True 
client.email = 'email@domain.com' 
client.password = 'password' 
client.source = 'mobilefriendlytest' 
client.ProgrammaticLogin() 

br = mechanize.Browser() 
br.set_handle_robots(False) 
br.addheaders = [("User-agent","Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13")] 

with open('websitesformobilefriendlytest.txt') as f: 
for line in f: 
    google_results = br.open("https://www.googleapis.com/pagespeedonline/v3beta1/mobileReady?url=http://" + str(line)).read() 
    json_obj = loads(google_results) 
    rowdict['website'] = str(line) 
    if json_obj["ruleGroups"]["USABILITY"]["pass"] == True: 
       #print "Congrats " + str(line) + " is mobile friendly" 
       rowdict['ismobilefriendly'] = "yes" 
    else: 
       #print str(line) + " is not mobile friendly" 
       rowdict['ismobilefriendly'] = "no" 
    client.InsertRow(rowdict,spread_sheet_id, worksheet_id)

***

Bhishan Bhandari faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://www.thetaranights.com/website-mobile-friendly-tester-automation-script-python-codes-for-mobile-friendly-test/