2013-03-01 93 views
1

我使用BeautifulSoup从网页获取数据。该网页提供了一个日期,我在Firefox中打开该页面时会看到该日期。但是,当我查看页面源时,没有日期,只有一些生成日期的JavaScript。我看到这里有一些相关的问题,我看到了对ajax和json的引用,但我只是一个amaeteur程序员,并且在这里仍然感到困惑。以下是一些HTML代码,其中包含JavaScript代码以及我需要的日期。Python来阅读Javascript日期

<div class="match-details"> 
    <p class="floatleft"> 
    BARCLAYS PREMIER LEAGUE 

    <span> 
     <script type="text/javascript"> 
     (function(){ 
     var d = new Date(1345489200000); 

     var year = d.getFullYear(); 
     var month = d.getMonth() + 1; 
     var day = d.getDate(); 
     var minutes = d.getMinutes(); 
     var hours = d.getHours();           

     if (minutes < 10) { minutes = '0' + minutes; } 
     var dmy = [day, month, year]; 
     var hm = [hours, minutes]; 
     if (SITE_EDITION == 'us/en') { 
      var dmy = [month, day, year];  
     } 
     var matches_local = dmy.join('/') + " " + hm.join(':'); 
     matches_local += "<span class='live-red'>*</span>"; 

     document.write(matches_local); 
     })();              
     </script> 
    </span> 

    </p> 
</div> 
+0

那么你的问题是什么? – 2013-03-01 20:25:47

+0

你可以稍微调出一些代码吗?没有必要把它从页面上推下去...... – 2013-03-01 20:28:36

+0

@BurhanKhalid当代码在浏览器中运行时,代码将输出一个日期到页面。他想知道如何通过编程获得编程方面的信息 – entropy 2013-03-01 20:30:18

回答

2

BeautifulSoup是一个HTML处理库。您需要一个HTML + Javascript处理库。

在这个问题上读了起来:Programmatic Python Browser with JavaScript

作为该QA状态......你基本上要么需要使用一个真正的浏览器 - 通过硒 - 或使用支持JavaScript的浏览器蟒蛇 - 像Spynner。

+0

感谢您的答复。我正在看pyv8,不幸的是我很难让它在Ubuntu上设置。维护pyv8站点的人建议使用预建版本,但没有针对linux的预建版本。我将打开一个新的线程,具体询问javascript如何解析上面的行。我认为这会更简单。 – appleLover 2013-03-02 21:34:09

+0

对不起,我不清楚编辑我的repsonse。您需要一个HTML + Javascript处理库。 PyV8只会让你运行JavaScript。它不会解析页面并告诉你要运行哪个JavaScript。您需要有一个支持JavaScript的HTML浏览器来触发正确的事件并允许操作DOM。 – 2013-03-03 20:18:16