HTML2Spreadsheet: Meta "Robots" aus Webseite extrahieren

Plentymarkets macht mal wieder Faxen, und ich würde das gerne monitoren (weil ich ihnen nicht traue) :wink:

Konkret würde ich gerne wissen, welcher Wert im Content steht für den Meta-Tag mit Namen robots, z.B.

<meta name="robots" content="ALL">

Aufbau simpel:

Lese ne CSV mit URLs, und füttere sie in einen SpreadsheetUrlDownload. Soweit klappts auch:

Response

Dann mit dem HTML2Spreadsheet ran:

Nach meinem Verständnis müsste ich jetzt eine Auflistung aller Meta-Tags mit ihrem Name erhalten, oder?

Ich bekomme aber nur eine Zeile raus, mit einem Meta-Tag

2025-06-13 17_44_47-Step Configuration - Synesty Studio - https___apps.synesty.com_studio_jobControl

Der Meta-Viewport steht ein paar hundert Zeilen weiter oben als der Robots, kanns daran liegen? Ich dachte dass vllt abgeschnitten wird weil ich in irgend ein Limit laufe, aber wenn ich mir die response_1.txt runter lade, dann ist da alles drin?

Dann selektiere ich falsch? :thinking:
Was mach ich falsch?

Test-URL ist https://www.samenhaus.de/gemuesesamen

Vielen Dank im Voraus,
Daniel

Hallo Daniel,
sehe ich es falsch oder machst Du gar keine Schleife?

Gruß Dirk

1 „Gefällt mir“

Hi Dirk,

Sieht du richtig, ja :upside_down_face:

Ich hatte mich am Handbuch orientiert, da ist auch keine Schleife drum, und da steht

Das processingTemplate wird für jede Zeile des Input-Spreadsheets angewendet, um daraus HTML-Elemente zu extrahieren.

und weiter unten

Das Skript wird auf jedes Eingabeelement angewendet (z. B. auf jede Zeile eines SPREADSHEET).

Hatte ich so verstanden, dass das von alleine über alle Zeilen loopt. Jetzt seh ich: es geht nicht um die Zeilen im responseContent, sondern um die im Spreadsheet :person_facepalming:

Wie müsste so eine Schleife dann aussehen, um über alle von selectHTML gematchten Elemente zu iterieren? :thinking: Steh grade auf dem Schlauch…

Alternativ: mit einem Suchterm fürs selectHTML dass mir direkt nur den Robots Metatag selektiert, würde sich mir das Problem gar nicht erst stellen :nerd_face:

Grüße

Ah, ja, wie immer: über eine LIST :light_bulb:

Funktioniert jetzt wunderbar:

<#assign row = target.addRow()>
<#assign row = target.addRow()>

<#assign metaElements = selectHTML("meta")/>

<#assign robots>
  <#list metaElements as meta>
    <#if (meta.attr("name") == "robots")>
      ${meta.attr("content")}
    </#if>
  </#list>
</#assign>

${row.addCol("URL", inputRow.get("source_URL")!)}
${row.addCol("Robots", robots!)}
1 „Gefällt mir“