Hallo,
bitte antworte nicht wahllos auf irgendeinen Beitrag im Thread, sondern auf den, auf den du dich gerade beziehst. Sonst entsteht ein Zusammenhang, der gar nicht beabsichtigt ist.
Sorry, bin neu hier und habe noch nicht durchschaut, wie sich das "ordnet". Kanns ein Admin richten und die richtige Reihenfolge einrichten?
nee, das ist jetzt so, wie's ist.
Stellt sich die Frage: Warum zapfst du dafür eine öffentliche Datenbank an? Eine Abfrage mit der Telefonnummer auf die Patienten-Datenbank würde doch genügen. Und dort wüsstest du wenigstens, dass alle nötigen Daten da sind - und in der Form, wie du sie brauchst.
Patienten-Datenbank genügt nicht. Es rufen auich "neue" Patienten an.
Dann wäre ich doch wieder vorsichtig, ob die gewerbliche Nutzung der Rückwärtssuche überhaupt zulässig ist.
Ich habe beim Ausprobieren leider keinen Eintrag mit Blumengrüßen gefunden
Probier mal 03643775947
Ein Eintrag in Weimar im div#entry_1. Der Name steckt im h2-Nachfahrenelement, die Adresse treffenderweise in einem address-Nachfahrenelement. Die Blumengrüße in einem weiteren div dahinter.
Gegenprobe mit der Nummer meines bevorzugten Pizza-Lieferdienstes im Nachbarort: Keine Blumengrüße, aber die Struktur ist genau dieselbe:
<div#entry_1>
<div.oe_hit>
<div.counter/>
<h2>
<a>Name</a>
</h2>
<address>Adresse</address>
Sonstiger Müll: Blumengrüße, Bewertungen, Web-Link u.ä.
</div>
</div>
Anscheinend ist dein Codeabschnitt, der das div#entry_1 weiter aufdröselt, das Problem. Da kann ich aber nicht mehr folgen, was diese Anweisungen wirklich tun.
Hab ich mir schon gedacht. Aber irgendwie sieht eingefügter Code nicht so richtig aus
Das liegt wohl daran, dass du entweder am Anfang oder am Ende nicht die ganze Zeile mitmarkiert hast, sondern nur einen Teil. Dann macht die Forensoftware ein Stück "Inline-Code" draus.
Imports System.Web
Imports System.Net
Imports System.Text
Imports HtmlAgilityPack
Public Class DasOertliche
Private Tab As Char = Convert.ToChar(9)
Private CrLf As String = Environment.NewLine
Friend Property AnruferListe As List(Of String)
Friend Function Anrufer(caller As String) As Boolean
Dim liste = New List(Of String)
Dim client As WebClient = New WebClient()
Dim doc As HtmlDocument = New HtmlDocument()
doc.Load(client.OpenRead("https://www.dasoertliche.de/?form_name=search_inv&buc=674&page=5&context=4&action=43&ph=" & caller), Encoding.UTF8)
Dim i As Integer = 1
Try
While i < 10
Dim entry = doc.GetElementbyId($"entry_{i}")
If entry Is Nothing Then Exit While
Dim divLeftOnHit = entry.ChildNodes.FirstOrDefault(Function(a) a.HasClass("oe_hit"))
Dim _Name As String = HttpUtility.HtmlDecode(divLeftOnHit.ChildNodes.FirstOrDefault(Function(a) a.Name = "a").InnerText.Replace(CrLf, ""))
Dim _Adresse As String = divLeftOnHit.ChildNodes.FirstOrDefault(Function(a) a.Name = "address").InnerText.Replace(CrLf, "").Replace(Tab, "")
liste.Add(_Name & ";" & _Adresse.Replace(" ", "").Replace(",", " "))
i += 1
End While
Catch ex As Exception
Dim dummy As String = ""
End Try
AnruferListe = liste
Return liste.Count > 0
End Function
End Class
Wie würdest Du es in HTML machen, um an die Werte für _Name und _Adresse zu kommen?
Gar nicht. HTML ist schließlich keine Programmiersprache, sondern eine Auszeichnungssprache. Aber in Javascript würde ich ganz ähnlich anstellen: Ich suche nach einem Element mit der ID "entry_1". Finde ich keins: Pech gehabt. Andernfalls hole ich mir dessen h2-Kindelement mit dem Namen, und das address-Kindelement mit der Adresse. Den Rest werfe ich weg.
Live long and pros healthy,
Martin
Lasst uns ins Horn brechen und aufstoßen.