當我試圖解析來自JavaScript書寫網站的數據時,遇到了一個非常奇怪的問題。也許是因爲我不是Web開發專家。Gigya API可以獲得隱藏的評論,但不可見
這裏是發生了什麼:
我試圖從The Globe and Mail得到所有的評論數據。如果您檢查其源代碼,則無法使用Python並解析源代碼中的評論數據,所有內容都是用JavaScript編寫的。
但是,有一個名爲「Gigya」API的神奇工具,它可以返回來自JS書寫網站的所有評論。 Gigya getComments method
當我在Python Scrapy Spider中使用這些代碼行時,它可能會返回所有評論。
data = {"categoryID": self.categoryID,
"streamID": streamId,
"APIKey": self.apikey,
"callback": "foo",
"threadLimit": 1000 # assume all the articles have no more then 1000 comments
}
r = urlopen("http://comments.us1.gigya.com/comments.getComments", data=urlencode(data).encode("utf-8"))
comments_lst = loads(r.read().decode("utf-8"))["comments"]
然而,環球郵報正在更新自己的網站,11月28日之前發佈的所有意見已經從網絡隱伏現在。這就是爲什麼我在這裏展示的示例網址中,您只能看到2條評論,因爲它們是在11月28日之後發佈的。而且這2條新評論已添加新功能 - 「反應」按鈕。
奇怪的是,當我運行我的代碼時,我可以隱藏所有那些在11月28日之前發佈的數百條評論,但無法獲得我們現在可以在網站上看到的新通信。
我已經嘗試了所有的Gigya評論相關的方法,他們沒有工作,其他的Gigya方法,不喜歡看的東西有幫助...
有什麼辦法來解決這個問題呢?
或者至少,你知道爲什麼,我可以得到所有的隱藏的評論,但不能看到具有新功能的可見新的通信?