Ich versuche Selenium/Python zu verwenden, um eine grundlegende HTML-Tabelle zu lesen. Jede Zeile wird wie folgt formatiert:Analysieren einer Tabelle in Selen
<tr>
<td bgcolor="#ffffbb"><font face="Arial"><font size=2><b><a href="https://www.lyngsat.com/tvchannels/id/TV-Polri.html">TV Polri</a></b></td>
<td bgcolor="#ffffbb"><a href="https://www.lyngsat.com/freetv/Indonesia.html"><img src="/f.gif" title="LyngSat Free TV" height=15 width=15 align=absbottom border=1></a><br></td>
<td bgcolor="#ffffbb"><font face="Verdana"><font size=1>MPEG-4</td>
<td bgcolor="#ffffbb"><font face="Verdana" size=1><font color="darkgreen"> 16</font></td><td bgcolor="#ffffbb"><font face="Verdana" size=1> 66</td>
<td bgcolor="#ffffbb"><font face="Verdana" size=1> 142 In<br></td>
<td bgcolor="#d0ffff"><font face="Verdana" size=1>new</font></td>
</tr>
Die Tabelle nicht IDs oder Klassen umfasst zwischenzuspeichern ab, so dass ich das Auswählen von Zeilen (auf TV-Kanäle bezogen) mit dem Inhalt von href:
text = "https:www.lyngsat.com/tvchannels/"
for elem in driver.find_elements_by_xpath('//a[contains(@href,"%s")]' % text):
print(elem.text) # Prints TV Polri, the name of the TV channel
Ich möchte jetzt die Geschwisterelemente durchlaufen, um die anderen Informationen in der Reihe zu ziehen (zB "MPEG-4", "16", "66", "142 In", "New"). Es wäre am einfachsten, wenn ich nur an die nächsten Geschwister mit so etwas wie bewegen kann:
channel_elem = elem.nextsibling()
... aber diese Funktion scheint nicht zu existieren. Ich habe auch versucht, die anderen Geschwister zu finden, direkt ‚following-Geschwister‘ mit:
for channel_elem in driver.find_elements_by_xpath('//td//a[contains(@href,"%s")]/../../following-sibling::td' % text):
# Read 2nd sibling (Channel)
aber finden keine Elemente, und fühlt sich auch wie ein Kreisel Lösung.
Vielen Dank im Voraus für die Hilfe.
Ich bin mir nicht sicher, ob Selen diese Fähigkeit hat. Ich würde versuchen, BeautifulSoup seit IIRC verwenden, können Sie Geschwister mit ihm finden – Mangohero1
[Geschwister in BeautifulSoup] (https://www.crummy.com/software/BeautifulSoup/bs4/doc/#next-sibling-and-previous- Geschwister) – Mangohero1
Ich bin mir nicht sicher, wie xpath dieses 'font'-Element in Ihrem HTML behandelt, aber haben Sie das' //td//a[contains(@hrref,"%s")].... ../Folge-Geschwister :: td 'Pfad? Es sieht so aus, als gäbe es einen zusätzlichen Backstep. probiere '' //td//a[contains(@href,"%s")]/../following-sibling::td 'stattdessen –