【问题标题】:Parsing HTML from commented out section Python从注释掉的 Python 部分解析 HTML
【发布时间】:2017-11-04 11:07:19
【问题描述】:

我正在尝试使用 Requests 和 BeautifulSoup 从本页 http://www.pro-football-reference.com/teams/nwe/2016_roster.htm 上的 games_played_team 表中抓取数据

url = "http://www.pro-football-
reference.com/teams/nwe/2016_roster.htm"
r = requests.get(url)

soup = BeautifulSoup(r.content)
print soup.prettify()

返回

<!DOCTYPE html>
<html data-version="klecko-" data-root="/home/pfr/build" 
itemscope="itemscope" itemtype="http://schema.org/WebSite" lang="en" class="no-js">
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0" />
  <link rel="dns-prefetch" href="https://d2p3bygnnzw9w3.cloudfront.net/req/201706021" />
  <link href="https://d2p3bygnnzw9w3.cloudfront.net" rel="preconnect" crossorigin="crossorigin" />
  <link href="http://d9kjk42l7bfqz.cloudfront.net/req/201607120" rel="preconnect" crossorigin="crossorigin" />
  <link href="https://www.google-analytics.com/" rel="preconnect" crossorigin="crossorigin" />
  <link href="https://www.googletagservices.com" rel="preconnect" crossorigin="crossorigin" />
  <script class="allowed">
   var sr_is_production = true;
function vjs_ready(e){"loading"!=document.readyState?e():document.addEventListener("DOMContentLoaded",e)}var log_performance=!1,sr_detect_operaMini=navigator.userAgent.indexOf("Opera Mini")&gt
;-1;if(sr_detect_operaMini){var el=document.querySelector("html");el.className=el.className.concat(" operamini")}var sr_detect_firefox=navigator.userAgent.indexOf("Firefox")&gt;-1;if(sr_detect
_firefox){var el=document.querySelector("html");el.className=el.className.concat(" firefox")}var sr_detect_firefoxMobile=navigator.userAgent.indexOf("Firefox")&gt;-1&amp;&amp;(navigator.userAg
ent.indexOf("Mobile")&gt;-1||navigator.userAgent.indexOf("Tablet")&gt;-1);if(sr_detect_firefoxMobile){var el=document.querySelector("html");el.className=el.className.concat(" firefox-mobile")}
var sr_detect_ie=function(){var e=window.navigator.userAgent;if(e.indexOf("Trident/7.0")&gt;0)return 11;if(e.indexOf("Trident/6.0")&gt;0)return 10;if(e.indexOf("Trident/5.0")&gt;0)return 9;for
(var t=3,n=document.createElement("div"),r=n.getElementsByTagName("i");n.innerHTML="&lt;!--[if gt IE "+ ++t+"]&gt;&lt;i&gt;&lt;/i&gt;
&lt;link rel="shortcut icon" href="https://d2p3bygnnzw9w3.cloudfront.net/req/201706021/favicons/pfr/favicon.ico"&gt;
  </script>
 </head>
</html>

当我查看实际的页面源代码时,看起来我想要的表格位于已注释掉的 HTML 块中。我不完全确定如何进行,如果有任何帮助,我将不胜感激

【问题讨论】:

  • &lt;script class="allowed"&gt; 我猜这是一个 javascript 加载的表。在 youtube 或其他网站上查找 selenium 和 phantomJS
  • 您要恢复哪些具体的信息项?

标签: python html beautifulsoup


【解决方案1】:

requests.get 更改为requests.post 是这里最简单的方法。或者,如果您想要另一个简单的解决方案,您可以只使用 Selenium。

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 2010-09-05
    • 2012-01-24
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多