私は、lxmlライブラリを使用して、収集したHTMLデータを解析しようとしています。ほとんどの場合、必要な値を抽出して成功した結果が得られましたが、私のコードではテキストデータの中にあるURLが抽出されないようです。以下のコードは、私が難しかった特定の値の単なる一例です。いくつかの値は文字だけで表示され、他の文字は文字で表示されます。 text()引数の代わりに、URLのテキストが含まれていますか?これまでの結果のPythons lxml text()の引数を使用するときにテキストデータにURLを含める方法
import lxml
import json
from lxml import etree
from lxml.html.clean import Cleaner
try:
from StringIO import StringIO
except ImportError:
from io import StringIO
with open('items.json') as data_file:
html = json.load(data_file)
html_parser = lxml.etree.HTMLParser()
for entry in html:
url = str(entry.get('url', ''))
field = str(entry.get('field1', ''))
html_parsed = lxml.etree.parse(StringIO(field), html_parser)
for table in html_parsed.xpath('//td/table'):
for row in table.xpath('.//tr'):
value = (row.xpath('.//td/text()'))
if "Homepage :" in value:
print(url)
print(value)
例:
サンプルHTMLデータ:
<td align="right">Homepage :</td><td align="left"><a href="http://www.example.com" target="_blank">www.example.com</a></td>
結果が返さ:
['Homepage :']
サンプルHTMLデータ:
<td align="right">Homepage :</td><td align="left">http://workingexample.com/</td>
結果が返さ:
['Homepage :', 'http://workingexample.com/']
ソリューション私は2番目の例のように私は必要なデータを得ることができるようにもいただければ幸いです:)