2017-03-01 130 views
0

說,我去這個頁面爲什麼我只看到一個div元素被返回?

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

保存,它的源代碼。然後以下列方式使用lxml

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

而這就是我得到:

[<Element div at 0x7f185ac9f908>] 

爲什麼我得到只有一個元素?如果查看源代碼,他會看到有更多的div元素可用。他們爲什麼不解析?

謝謝。

回答

1

檢查是否redditsample.html文件保存相同https://www.reddit.com/r/starcraft/

reddit的強制速率限制,所以如果你運行你的腳本多次,你可能認爲。在這種情況下,您保存的redditsample.html文件可能只包含一條reddit消息,表明您達到了費率限制,您需要稍後再次嘗試您的請求。

請求URL沒有擊中任何速率限制,將.xpath('//div')結果是429個節點:

>>> len(etree.fromstring(requests.get('https://www.reddit.com/r/starcraft/') 
    .content, parser=etree.HTMLParser()).xpath('//div')) 
429 
相關問題