2016-05-19 3 views
3

Ich möchte API von validator.w3.org/nu verwenden.Anfragen Bibliothek und validator.w3.org/nu

Dokumentation: https://github.com/validator/validator/wiki/Service:-Input:-GET

Mein Code:

validaror_url = "https://validator.w3.org/nu/"   
headers = { "Content-type": "text/html, charset=utf-8" } 

ip_address = urllib.quote("http://www.artlebedev.ru/") 
params = { "doc": ip_address, "out": "json"} 

response = requests.get(validaror_url, headers=headers, 
         params=params) 

ich:

Response: <Response [200]> 
content str: {"url":"http%3A//93.185.180.36/","messages":[{"type":"non-document-error","subType":"io","message":"Missing scheme"}]}\n 

Wenn ich wieder eine andere Probenort, nicht-Dokument-Fehler übernehmen.

Dieser Fehler wird hier entziffert: https://github.com/validator/validator/wiki/Output:-JSON

Aber wie auch immer, sollte eine solche Fehlermeldung nicht da sein.

Wenn ich Anforderungen an Unireest ändere, ist alles in Ordnung (es gibt viele Nachrichten und sie sind informativ). Aber Unirest ist für mich nicht geeignet, weil Python3 nicht unterstützt wird.

Ich denke, vielleicht ist das Problem, dass Anforderungen nicht mit dieser erfüllen können "Nur" & "wird als Abfrage Parameter Trennzeichen unterstützt."; "Wird nicht unterstützt" (das ist aus Validator-Dokumentation).

Nun, Anfragen ist kein Dogma. Was ich brauche, ist nur eine sinnvolle Antwort vom Validator zu erhalten, während Python3 verwendet wird. Wenn Anfragen nicht geeignet sind, sollte ich es vielleicht ändern.

Können Sie mir einen Tritt geben?

Antwort

1

Sie die URL alles bar übergeben und die params nicht

import requests 
validaror_url = "https://validator.w3.org/nu/" 
ip_address = "http://www.artlebedev.ru/" 
params = { "doc": ip_address, "out": "json"} 

response = requests.get(validaror_url, 
         params=params) 

print(response.json()) 

, die wie Sie die Ausgabe gibt:

{'extract': 'аз... -->\n<table border="0" cellpadding="0" cellspacing="0" width="100%">\n<tr v', 
    'firstColumn': 1, 
    'hiliteLength': 63, 
    'hiliteStart': 10, 
    'lastColumn': 63, 
    'lastLine': 1369, 
    'message': 'The “width” attribute on the “table” element is obsolete. Use CSS instead.', 
    'type': 'error'}, 
    {'extract': 'аз... -->\n<table border="0" cellpadding="0" cellspacing="0" width="100%">\n<tr v', 
    'firstColumn': 1, 
    'hiliteLength': 63, 
    'hiliteStart': 10, 
    'lastColumn': 63, 
    'lastLine': 1369, 
    'message': 'The “border” attribute on the “table” element is obsolete. Use CSS instead.', 
    'type': 'error'} 

Es viel zu viel, um alles zu posten.