Я предполагаю, что вы используете Scrapy для очистки HTML.
Из структуры вашего примера HTML похоже, что вы хотите получить текст элемента привязки, поэтому вам нужно выполнить итерации по ним.
Только тогда вы можете вырезать и объединить текстовые дочерние узлы элемента привязки для получения правильно отформатированных строк. Непоследовательное использование кавычек приводит к дополнительным осложнениям, но следующее должно помочь вам.
from scrapy.selector import Selector
HTML="""
<td class="name table-participant">
<a href="/soccer/argentina/superliga/independiente-san-martin-tIuN5Umrd/">
<span class="bold">Independiente</span>
"- San Martin T."
</a>
</td>
<td class="name table-participant">
<a href="/soccer/argentina/superliga/lanus-huracan-xIDIe0Gr/">
"Lanus - "
<span class="bold">Huracan</span>
</a>
</td>
<td class="name table-participant">
<a href="/soccer/argentina/superliga/rosario-central-colon-santa-fe-Q1Ye9Jpr/">Rosario Central - Colon Santa FE</a>
</td>
"""
def strip_and_join(x):
l=[]
for s in x:
# strip whitespace and quotes
s = s.strip().strip('"').strip()
# drop now empty strings
if s:
l.append(s)
return " ".join(l)
for x in Selector(text=HTML).xpath('//td[@class="name table-participant"]/a'):
print strip_and_join(x.xpath('.//text()').extract())
Обратите внимание, что для ясности я не сжимал код в единый список, хотя, конечно, это было бы возможно.