Ich bin neu in Python. Ich mache einen Kurs in Python 2.7, aber zur gleichen Zeit, ich möchte in der Lage sein, allen 3.Drucken von HTML-Daten mit Python 3
-Code in Python 2.7 in Python zu tun:
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('www.py4inf.com', 80))
mysock.send('GET http://www.py4inf.com/code/romeo.txt HTTP/1.0\n\n')
while True:
data = mysock.recv(512)
if (len(data) < 1) :
break
print data
mysock.close()
Ausbeuten richtig formatierte Daten, wie so :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-Code in Python 3:
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('www.py4inf.com', 80))
mysock.send(('GET http://www.py4inf.com/code/romeo.txt HTTP/1.0\n\n').encode())
while True:
data = mysock.recv(512)
if (len(data) < 1) :
break
print(data);
mysock.close()
Und es ergibt:
b'HTTP/1.1 200 OK\r\nContent-Type: text/html; charset="utf-8"\r\nContent-Length: 2788\r\nConnection: Close\r\n\r\n<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n
Wie Sie sehen können, fügt es ein "b" -Zeichen hinzu und ignoriert \ r \ n. Die Formatierung ist weit weg. Woher kam das 'b'? Wie kann ich Python richtig formatieren? Ich habe versucht, es in eine Zeichenfolge vor dem Drucken zu konvertieren, aber es hat nicht geholfen.
Das ist eine interessante Möglichkeit, HTML zu holen ... Haben Sie die Bibliothek 'requests' schon gefunden? –
@Marki, also im Grunde senden und empfangen Sie Byte in Python3 (richtig). Was Sie tun müssen, ist, es vor dem Drucken zu entschlüsseln. dh. 'print (data.decode ('utf-8'))' – Anzel
Danke euch beiden dafür. Ich habe die Bibliothek noch nicht gefunden. Ich war jedoch an der Urllib-Bibliothek interessiert. Ich werde morgen über sie lesen. – Marki