0

からいくつかのテキストとリンクを抽出しようとしていますinstapaper.com。だから私は仕事を成し遂げるために次のコードを使用しています:

>>> import lxml.html as lh
>>> doc = lh.parse("http://www.instapaper.com/u/folder/1227370/programming")
>>> text = doc.xpath(".//*[@id='bookmark_list']/*/div[3]/a/text()")
>>> len(text)
0
>>> text
[]

ご覧のとおり、空のリストが返されます。これは、上記のxpathに一致するテキストが見つからないことを意味します。

上記xpath exprをfirebug/firepathで使用すると、正常に動作します。

ここに画像の説明を入力してください

あなたはそれが示す上の画像で見ることができます40 matching nodes

だから、私の質問は、なぜ上記のxpath式がpython/lxmlで機能しないのかということです。

リクエストに応じてInstapaperページのソース

4

1 に答える 1

5

IDを持つ要素はありませんbookmark_list。たぶんあなたはログインしている必要があります。

編集

それが機能する実際のHTMLを解析します。

doc = lh.parse("http://pastebin.com/raw.php?i=1WpFAfCt")
text = doc.xpath("//*[@id='bookmark_list']/*/div[3]/a/text()")
len(text) # => 40
于 2012-08-06T10:15:18.277 に答える