2017-03-12 1 views
0

Hey Ich habe es eine Weile versucht und ich kann nicht herausfinden, wie Sie den Namen mit soup.find-Funktion identifizieren. Das Objekt, nach dem ich suche, ist mit "Name" gekennzeichnet: Wie finde ich es, wenn es in etwa so ist? Der Text geht weiter nach oben und unten.Verwenden von schönen Suppe, um einen Namen in einem HTML-Dokument zu finden

"100002078216989": { "Wasserzeichen": 1488952059387, "action": 1488954831234} "100002219436413": { "Wasserzeichen": 1488717577383, "action": 1488717619845} "100003348640283": { "Wasserzeichen ": 1489154862229," action ": 1489158262774}," 100004986371453 ": {" watermark ": 1489154862229," aktion ": 1489154866065}}], []], [" MDynaTemplate "," registerTemplates ", [], [{" URLg3i ": [" MMessageSourceTextTemplate " "\ u003Cspan class = \" Quelle MFSS FCG \ "> [[text]] \ u003C/span>"], "DHGslp": [ "MMessageSourceTextWithLinkTemplate"," \ u003Cspan Klasse = \ "mfss fcg \"> \ u003Ca href = \ "[[\ u0025UNESCAPED]] [[download_href]] \"> [[text]] \ u003C/a> \ u003C/span> "]," vSvEYy " : ["MReadReceiptTextTemplate", "\ u003Cspan class = \" mfss fcg \ "> [[text]] \ u003C/span>"]}], []], ["MShortProfiles", "set", [], ["Wert", {"id": "Wert", "name": "Wert", "firstname": "Wert", "Eitelkeit": "Wert", "thumbSrc": null

+0

Ich denke, es wäre einfacher, wenn Sie die URL der Seite angeben könnten, auf der Sie nach dem Namen oder HTML dieser Seite suchen wollten. – Jonathan

+0

Das HTML ist von der Facebook Mobile Messenger Seite einer Konversation. Ich bin ziemlich sicher, ist die einzige eindeutige Möglichkeit, den Namen des Benutzers in der Nachricht zu identifizieren. Da die HTML-Seite voll von persönlichen Informationen ist, bin ich nicht sehr zuversichtlich, meine eine zu teilen. –

+0

Von dem, was ich den HTML-Code für den Namen sehen kann, ist die folgende Jonathan Sundqvist '. Also vielleicht nach der Klasse namens Schauspieler suchen? Es ist immer noch nicht klar, was Sie erreichen wollen. Finde einfach den Namen? – Jonathan

Antwort

0

Hier ist meine Lösung:

def get_name(self, file): 

    s = BeautifulSoup(open(file), "lxml") 
    for item in s.find("p"): 
     print("The base item: \n" +item + "\n") 
     item = item.split("name\":\"") 
     print("1st split: \n" + item[-1] + "\n") 
     item = item[-1].split("\",\"") 
     print("2nd split: \n" + item[0] + "\n") 

Ausgang :

The base item: 
"100002078216989":{"watermark":1488952059387,"action":1488954831234},"100002219436413":{"watermark":1488717577383,"action":1488717619845},"100003348640283":{"watermark":1489154862229,"action":1489158262774},"100004986371453":{"watermark":1489154862229,"action":1489154866065}}],[]],["MDynaTemplate","registerTemplates",[],[{"URLg3i":["MMessageSourceTextTemplate","\u003Cspan class=\"source mfss fcg\">[[text]]\u003C/span>"],"DHGslp":["MMessageSourceTextWithLinkTemplate","\u003Cspan class=\"mfss fcg\">\u003Ca href=\"[[\u0025UNESCAPED]][[download_href]]\">[[text]]\u003C/a>\u003C/span>"],"vSvEYy":["MReadReceiptTextTemplate","\u003Cspan class=\"mfss fcg\">[[text]]\u003C/span>"]}],[]],["MShortProfiles","set",[],["Value",{"id":"Value","name":"Value","firstName":"Value","vanity":"Value","thumbSrc":null 

1st split: 
Value","firstName":"Value","vanity":"Value","thumbSrc":null 

2nd split: 
Value 

In der Tat ist Ihre HTML-Datei kein perfektes Format. Also ist der beste Weg, den ich finden kann, so. Es kann jedoch Ihrem Bedarf entsprechen.

Verwandte Themen