2017-03-01 9 views
0

言ってやるが、私はこのページ返されるdiv要素が1つしかないのはなぜですか?

https://www.reddit.com/r/starcraft/

保存、そのソースコードにアクセスしてください。そして、次のようにlxmlを使用します。

tree = etree.parse('redditsample.html', parser=etree.HTMLParser()); 
tree.xpath('//div') 

そして、これは私が得るものです:

[<Element div at 0x7f185ac9f908>] 

は、なぜ私は一つだけの要素を得るのですか?ソースコードを調べると、より多くのdiv要素を利用できる方法があることがわかります。なぜ彼らは解析されないのですか?

ありがとうございました。

答えて

1

チェックあなたのスクリプトを複数回実行した場合、あなたはそれにそのを有することができるので、https://www.reddit.com/r/starcraft/

のredditは、レート制限を強制するよう、保存したredditsample.htmlファイルが同じである場合。その場合、保存されたredditsample.htmlファイルにはレートリミットが発生したことを示す赤いメッセージしか表示されず、後でリクエストを再試行する必要があります。

>>> len(etree.fromstring(requests.get('https://www.reddit.com/r/starcraft/') 
    .content, parser=etree.HTMLParser()).xpath('//div')) 
429 
:任意のレート制限を押すことなくそのURLを要求

.xpath('//div')結果は429個のノードです

関連する問題