私はコーディングの初心者で、私の友人はhtmlparserの代わりにBeautifulSoupを使用するように教えてくれました。いくつかの問題に遭遇した後、BextifulSoupの代わりにlxmlを使用するためのヒントを得ました。lxmlでHTMLデータを解析する
私は、誰かが私に探しているテキストを掻きする方法をヒントとして与えることができると願っています。私が欲しいもの
は、次の行とデータを持つテーブルを見つけることです:
<tr>
<td><a href="website1.com">website1</a></td>
<td>info1</td>
<td>info2</td>
<td><a href="spam1.com">spam1</a></td>
</tr>
<tr>
<td><a href="website2.com">website2</a></td>
<td>info1</td>
<td>info2</td>
<td><a href="spam2.com">spam2</a></td>
</tr>
にはどうすればlxml
で、スパムなしに、情報1及び2とのウェブサイトをこすり、以下の結果を得るのですか? td/a[not(contains(.,"spam"))]/@href | td[not(a)]/text()
$ python3
>>> import lxml.html
>>> doc = lxml.html.parse('data.xml')
>>> [[j for j in i.xpath('td/a[not(contains(.,"spam"))]/@href | td[not(a)]/text()')] for i in doc.xpath('//tr')]
[['website1.com', 'info1', 'info2'], ['website2.com', 'info1', 'info2']]
あなたはちょうど数行のコードで私の一日を作りました。説明に感謝します。実際、すべての答えが素晴らしいです。私は火かき棒でそれを得るためにxpathについて学んでいた。しかし、彼は最初のテーブル行を見つけてその中のデータを処理するほうがはるかに簡単です。再びありがとう、メリーxマス:) – Retrace