次の情報を取得したい場合:
<td>But<200g/M2</td>
name = fila.select('.//td[2]/text()').extract()
私は以下をキャプチャします
"But"
どうやらこれらの文字「< /」と競合しているようです
次の情報を取得したい場合:
<td>But<200g/M2</td>
name = fila.select('.//td[2]/text()').extract()
私は以下をキャプチャします
"But"
どうやらこれらの文字「< /」と競合しているようです
'\'で特殊文字をエスケープするので、:
But\<200g\/M2
これらの文字を使用してファイルを作成するのはそれほど簡単ではないことに注意してください
別のライブラリで運が良かった場合に備えて、BeautifulSoup を使用するアプローチを次に示します。
from bs4 import BeautifulSoup
soup = BeautifulSoup("""<html><head><title>StackOverflow-Question</title></head><body>
<table>
<tr>
<td>Ifs</td>
<td>Ands</td>
<td>But<200g/M2</td>
</tr>
</table>
</body></html>""")
print soup.find_all('td')[2].get_text()
これの出力は次のとおりです。
But<200g/M2
XPath を使用したい場合は、ElementTree XML APIも使用できます。ここでは、BeautifulSoup を使用して HTML を有効な XML に変換し、それに対して XPath クエリを実行できるようにしています。
from bs4 import BeautifulSoup
import xml.etree.ElementTree as ET
html = """<html><head><title>StackOverflow-Question</title></head><body>
<table>
<tr>
<td>Ifs / Ands / Or</td>
<td>But<200g/M2</td>
</tr>
</table>
</body></html>"""
soup = BeautifulSoup(html)
root = ET.fromstring(soup.prettify())
print root.findall('.//td[2]')[0].text
これの出力は同じです (HTML が少し異なることに注意してください。これは、XPath 配列が 1 から始まるのに対し、Python 配列は 0 から始まるためです)。