2

アトム フィード (xml) をスクレイピングしています。タグの 1 つには次のように書かれています。

<content type="html">
&lt;p&gt Some text and stuff &lt;/p&gt
</content>

また、img と a タグに同じ html エンティティが表示されます。次のような img タグまたは p タグを見つけるための一般的な xpath はありますか。

//content/p  or //content/img/@src

しかし明らかに、これはこれらの html エンティティでは機能しません。または、スクレイピーを使用した他のソリューションですか?

4

1 に答える 1

3

contentテキスト要素を抽出し、それぞれについて HTML コンテンツを解析する必要があると思いますlxml.html

import lxml.etree
import lxml.html

xmlfeed = lxml.etree.fromstring(xmlfeedstring)
for content in xmlfeed.xpath('//content[@type="html"]/text()'):

    htmlcontent = lxml.html.fragment_fromstring(content)
    paragraphs = htmlcontent.xpath('//p')
    image_urls = htmlcontent.xpath('//img/@src')

lxml ドキュメントからのHTML フラグメントの解析を参照してください。

于 2013-10-01T16:29:31.537 に答える