Thread Perl, RegExp & HTML (10 answers)
Opened by Equipaas at 2016-11-29 07:59

Gast Equipaas
 2016-11-29 07:59
#185683 #185683
Hallo alle zusammen,

ich hoffe, dass ich hier richtig bin mit meiner Frage, sonst bitte moven :-) Danke @ Mod.

Ich habe folgendes Problem: Ich selbst bin noch nicht wirklich tief drin in Perl und habe auch nicht genug Zeit im Moment, um mir die Sprache komplett beizubringen.
Allerdings arbeite ich momentan mit einem Kollegen zusammen an einem kleinen Skript, mit welchem wir Daten von unserer HP auslesen wollen - dabei geht es um eine Menge Datenbank-Inhalte. Das Skript basiert auf Perl und arbeitet mit Regular Expressions - soweit so gut.

Wir haben jetzt auch schon das Meiste fertig, allerdings hängen wir noch an einem Punkt: An einer Stelle soll das Skript aus dem Quellcode (liegt als .aspx bzw. .html vor) eine Tabelle auslesen und ausgeben. Das Problem: innerhalb der Tabelle sind viele "Platzhalter" in HTML geschrieben - diese sollen allerdings nicht mit exportiert werden. Am Ende soll nur Klartext in eine CSV wandern.

Ein Beispiel:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
 <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="98%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="0%"><img src="../images/spacer.gif" width="5" height="22" alt="" /></td>
<td width="50%"><b>Unternehmen:</b></td>
<td width="0%"><img src="../images/spacer.gif" width="5" height="22" alt="" /></td>
<td width="50%"><b>Konzern:</b></td>
<td width="0%"><img src="../images/spacer.gif" width="5" height="22" alt="" /></td>
</tr>
<tr>
<td width="0%"><img src="../images/spacer.gif" width="5" height="22" alt="" /></td>
<td width="50%">Hinz und Kunz AG</td>
<td width="0%"><img src="../images/spacer.gif" width="5" height="22" alt="" /></td>
<td width="50%"></td>
<td width="0%"><img src="../images/spacer.gif" width="5" height="22" alt="" /></td>
</tr>
</table>
</td>
</tr>
<tr id="showUnternehmen187_Content" style="display:none">
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="White">
<tr>
<td bgcolor="#CCCCCC" class="HeaderShadow"><img src="../images/spacer.gif" width="10" height="5"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="White">
<tr>
<td height="26" width="0%"><img src="../images/spacer.gif" width="10" height="5" alt="" /></td>
<td height="26" width="100%" valign="middle">
<b>Branche:</b>
</td>
<td height="26" width="0%"><img src="../images/spacer.gif" width="5" height="5"></td>
</tr>
<tr>
<td height="26" width="0%">
<img src="../images/spacer.gif" width="10" height="5" alt="" />
</td>
<td height="26" width="0%">

Baugewerbe<br />

</td>
<td height="26" width="0%">
<img src="../images/spacer.gif" width="5" height="5"/>
</td>
</tr>
<tr>
<td height="26" width="0%">
<img src="../images/spacer.gif" width="10" height="5" alt="" />
</td>
<td height="26" width="100%" valign="middle">
<b>Position:</b>
</td>
<td height="26" width="0%">
<img src="../images/spacer.gif" width="5" height="5" />
</td>
</tr>
<tr>
<td height="26" width="0%">
<img src="../images/spacer.gif" width="10" height="5" alt="" />
</td>
<td height="26" width="0%">

<table width="100%">
<tr>
<td>
&nbsp;
</td>
<td valign="top">
<table>
<tbody>
<tr>
<td style="width:175px" colspan="3">
<b>Zeitraum</b>
</td>
<td style="width:175px">
<b>Position</b>
</td>
</tr>
<tr>
<td>
03.2010
</td>
<td>&nbsp;-&nbsp;</td>
<td>
bis Heute
</td>
<td>
Geschaftsführerin
</td>
</tr>
</tbody>
</table>
</td>
<td valign="top">
<table>
<tbody>
<tr>
<td style="min-width: 150px;">
<b>Tätigkeitsbereiche</b>
</td>
</tr>
<tr>
<td style="min-width: 150px;">

Management / Geschäftsführung<br />

<br />
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>

</td>
<td height="26" width="0%"><img src="../images/spacer.gif" width="5" height="5"></td>
</tr>
</table>
</td></tr>
</table>


Am Ende soll in der CSV (egal ob in einer Zelle oder mehreren) der Inhalt einfach wie nachfolgend drin stehen:
Unternehmen: Hinzu und Kunz, Branche: XY, Zeitraum: X bis Y, Position: CEO, Tätigkeit: YXU

Hat jemand hierzu eine Idee? Das ist unser aktueller Versuch (wir erhalten zwar einen Export, allerdings mit vielen HTML-Fetzen und viel zu viel Platzhaltern, breaks, space, etc.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$i=0;
for ($x=0;$x<30;$x++) { $Arbeit[$x]=""; }

while ($daten =~ /<div id="ctl00_ContentPlaceHolderText_objPageUnternehmen" class="rmpHiddenView">(.*)<\/div>/sg) {

$tmp = $1;
$tmp =~ s/<.*?>//g;
print $tmp;

if ($tmp =~ /([A-Za-z0-9 öäü.&;-]+)/s) {
$Arbeit[$i] = $1;
$i++;
}
}


Für Hilfe wären wir echt dankbar :-)
Ich hoffe, dass die Fragen wenigstens einigermaßen verständlich ist O.o

Beste Grüße
Equipaas
Last edited: 2016-11-29 08:27:04 +0100 (CET)

View full thread Perl, RegExp & HTML