【问题标题】:Getting news from the site从网站获取新闻
【发布时间】:2014-04-24 06:18:01
【问题描述】:

有必要通过某些时间段获得对站点http://mediametrics.ru/rating/ru/online.html 列表的第一条新闻的引用。

我正在通过 Python Selenium 进行开发。 我尝试了不同的方法:阅读 html,并尝试从 JavaScript 获取响应,但没有任何反应。

【问题讨论】:

    标签: javascript python html selenium


    【解决方案1】:

    好的,一直在尝试不同的方法来帮助解决您的问题。终于有个主意了。

    所以基本上你不能依赖通过访问该页面获得的静态 html。因此,查看浏览器中的Network 选项卡,我发现两个请求发出了非常 X 秒的时间(没有注意这一点)。 因此,您可以获得您的第一个信息(通过调用此 url 在列表顶部):

    http://mediametrics.ru/rating/ru/online.tsv?page=1&update=1401216280
    

    最后一个参数update 你需要在你发出请求的时候相应地改变它。这是一个时代。 从该请求中,您会得到内容类型为 text/plain 的响应。不幸的是,这不是你最好的回应:

    URL Title   Visitors    Delta   Shift   ID  819 1401216700  0
            508 -7  0   88680394    
            247 4   0   88193830    
            137 0   -1  88777121    
            135 -3  1   88585317    
            110 -3  -5  12773355    hot
            92  0   0   88724182    
            79  -2  0   88171489    
            76  1   0   88325612    
            59  -3  0   88362537    
            58  -2  0   88585583    
            48  0   -1  88473319    
            47  0   -1  88782428    
            46  0   -31 88470684    hot2
            45  -5  1   88865695    
            44  1   -1  88652852    
            44  2   -1  88679946    
            43  -1  2   88711744    
            40  1   0   88652022    
            38  1   0   88681949    
            37  0   -1  88359733    
            36  2   -2  88612187    
            35  1   -18 88671532    hot
            35  -2  0   88324438    
            34  1   0   88869913    
            34  1   0   88586542    
            33  0   0   88509191    
            33  0   2   88717302    
            32  0   -20 88603116    hot
            31  -2  2   88176393    
            30  0   -30 88644435    hot2
            29  1   0   88686770    
            28  -2  0   88213989    
            26  0   -1  88562683    
            24  -3  2   88634740    
            24  0   -12 88247749    hot
            24  0   0   88257193    
            24  0   0   88350559    
            21  -2  0   88682576    
            21  0   -4  88847895    
            19  0   -1  88864392    
            19  0   -1  88677033    
            19  0   -3  88850105    
            18  0   0   88658580    
            17  0   -3  88649865    
            17  1   -18 88578308    hot
            17  1   5   88326429    
            16  0   -1  88285506    
            16  -1  0   88603395    
            15  -2  4   88527942    
            15  2   -16 88199416    
    

    基本上,从第二列开始,您需要第四个字段(即88680394)。 这只会为您提供您的站点 id,要从此“站点 id”获取其余信息,您需要向此页面发出另一个请求,指定您之前提取的“站点 id”:

    http://mediametrics.ru/rating/index.tsv?titles=88680394
    

    这将返回以下响应:

    russian.rt.com/article/33873    Ополченцы ДНР: К нам пришло большое подкрепление    0   0   0   88680394    hot
    

    您可以从最后的回复中填写您需要的信息。 我没有给出实际的实现,但考虑到你提到你已经尝试过 Python,我想从这里开始你的实现会更容易。

    【讨论】:

      【解决方案2】:

      如果我正确理解你.....,请尝试使用requestsBeautifulSoup

      Here你可以找到非常好的教程。

      【讨论】:

        最近更新 更多