2017-11-10 2 views
0

Ich verwende diesen Befehl für jede Zeile in einer Tabelle, aber ich bekomme nur den Text, der nicht kursiv ist.So erhalten Sie kursiven und nicht kursiven Text mit Lxml

name = ''.join(row.xpath('td[3]/a/text()')) 

Das a Element hat einen Text in <em> </em Tags.

<td class="cardname"><a href="http://www.mtgotraders.com/store/PRM_Ball_Lightning_f.html"><em>Ball</em> <em>Lightning</em> *Foil*</a></td> 

Ich möchte Ball Lightning *Foil*

+0

Mindestens aktualisieren Sie Ihre Frage mit einigen Elementen, in denen die kursiv und nicht kursiver Text zur Verfügung stehen. – SIM

Antwort

0

Ist das, was Sie wollten bekommen? Egal, ob Sie xpath oder css selector verwenden, das Ergebnis ist immer dasselbe. Geben Sie dieses ein Schuss:

html_content=''' 
<td class="cardname"><a href="http://www.mtgotraders.com/store/PRM_Ball_Lightning_f.html"> 
<em>Ball</em> <em>Lightning</em> *Foil*</a></td> 
''' 
from lxml.html import fromstring 

root = fromstring(html_content) 
item = root.cssselect(".cardname a")[0].text_content().strip() 
item_alternative = root.xpath("//*[@class='cardname']/a")[0].text_content().strip() 

print(item) 
print(item_alternative) 

Ergebnis:

Ball Lightning *Foil* 
Ball Lightning *Foil* 
Verwandte Themen