簡體   English   中英

使用python檢索嵌入在另一個網頁中的注釋(disqus)

[英]Retrieving comments (disqus) embedded in another web page with python

我正在使用python 3.5(Beautifulsoup)抓取一個網站。 我可以閱讀源代碼中的所有內容,但一直在嘗試從Disqus中檢索嵌入的注釋,但都沒有成功(這是對腳本的引用)。

該段html代碼源如下所示:

var disqus_identifier = "node/XXXXX";
script type='text/javascript' src='https://disqus.com/forums/siteweb/embed.js';

src發送到腳本功能。

我已經閱讀了使用硒的stackoverflow中的建議,但是我很難使它成功。 我了解硒模擬了瀏覽器(我認為它對於我想要的東西來說太重了)。 但是,我的webdrivers有問題,它不能正常工作。 因此,我放棄了此選項。

我希望能夠執行腳本並檢索帶有注釋的.js。 我發現可能的解決方案是PyV8。 但是我不能導入python。 我在互聯網上閱讀了帖子,我用Google搜索了它,但是它不起作用。

我安裝了Sublime Text 3,並在以下位置手動下載了pyv8-win64-p3:

C:\\ Users \\ myusername \\ AppData \\ Roaming \\ Sublime Text 3 \\ Installed Packages \\ PyV8 \\ pyv8-win64-p3

但我不斷得到:

ImportError:沒有名為“ PyV8”的模塊。

如果有人可以幫助我,我將非常感激。

因此,您可以通過研究網絡流量來構造Disqus API。 頁面源中包含所有必需的數據。 像Disqus API發送一些查詢字符串。 最近,我從Disqus API中提取了注釋,這是示例代碼。

示例:這里湯-頁面源代碼和params_dict = json.loads(str(soup).split("embedVars = ")[1].split(";")[0])

def disqus(params_dict,soup):
    headers = {
    'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0'
    }
    comments_list = []
    base = 'default'
    s_o = 'default'
    version = '25916d2dd3d996eaedf6cdb92f03e7dd'
    f = params_dict['disqusShortname']
    t_i = params_dict['disqusIdentifier']
    t_u = params_dict['disqusUrl']
    t_e = params_dict['disqusTitle']
    t_d = soup.head.title.text
    t_t = params_dict['disqusTitle']
    url = 'http://disqus.com/embed/comments/?base=%s&version=%s&f=%s&t_i=%s&t_u=%s&t_e=%s&t_d=%s&t_t=%s&s_o=%s&l='%(base,version,f,t_i,t_u,t_e,t_d,t_t,s_o)
    comment_soup = getLink(url)
    temp_dict = json.loads(str(comment_soup).split("threadData\" type=\"text/json\">")[1].split("</script")[0])
    thread_id = temp_dict['response']['thread']['id']
    forumname = temp_dict['response']['thread']['forum']
    i = 1
    count = 0
    flag = True
    while flag is True:
        disqus_url = 'http://disqus.com/api/3.0/threads/listPostsThreaded?limit=100&thread='+thread_id+'&forum='+forumname+'&order=popular&cursor='+str(i)+':0:0'+'&api_key=E8Uh5l5fHZ6gD8U3KycjAIAk46f68Zw7C6eW8WSjZvCLXebZ7p0r1yrYDrLilk2F'
        comment_soup = getJson(disqus_url)

它會返回json,您可以在其中提取注釋的地方找到注釋。 希望這對您有幫助。

對於Facebook嵌入的注釋,您可以使用Facebook的graph api提取json格式的注釋。

例-

Facebook評論-https: https://graph.facebook.com/comments/?ids= "link of page"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM