从网站获取新闻

时间:2014-04-24 06:18:02

标签: javascript python html selenium

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

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

2 个答案:

答案 0 :(得分:2)

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

所以基本上你不能依赖通过访问该页面获得的静态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    

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

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

这将返回以下回复:

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

从最后一个回复中,您可以完成所需的信息。 我没有给出实际的实现,但考虑到你提到你已经尝试过Python,我认为从这里开始实现它会更容易。

答案 1 :(得分:0)

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

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