我正在尝试从该站点获取信息:
http://www.gocrimson.com/sports/mbkb/2011-12/roster
如果您在浏览器中查看该页面,您会看到一个<table>
包含所有球员信息的漂亮页面,下面是教练的信息。
当我将该页面拉入 python 程序(使用urllib2
)或 ruby 程序(使用nokogiri
)时,表格表示为一堆div
元素。我认为可能有一些 javascript 正在运行,所以我在浏览器上禁用了 javascript 并重新访问了该页面。它仍然加载了table
s 到位。
如果我使用Selenium
拉入页面源,我会得到table
格式。
关于为什么页面与 div 一起出现的任何想法?
Python:
page = urllib2.urlopen(url)
html = page.read()
print html
输出(我将其中一个div
s 放在最后一行以引起注意。那是tr
浏览器页面中的 a 。缩短以保持字符限制):
'\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\r\n\r\n<?xml version="1.0" encoding="iso-8859-1"?>\r\n<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">\r\n<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1"/> <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0"/>\r\n<meta forua="true" http-equiv="Cache-Control" content="must-revalidate" />\r\n<meta http-equiv="Pragma" content="no-cache, must-revalidate" />\r\n
<title>The Official Website of Harvard University Athletics: Harvard Athletics - GoCrimson.com : Men\'s Basketball - 2011-12 Roster </title>\r\n<link rel="stylesheet" href="/info/mobile/mobile.css" type="text/css"></link>\r\n<link rel="stylesheet" href="/mobile-overwrite.css" type="text/css"></link>\r\n</head>\r\n
<body class="classic">\r\n\r\n\r\n\t<strong><a href="/landing/index">News</a></strong>\r\n | \r\n\t<a href="/landing/index?c=scores">Scores</a>\r\n<br /><br />\r\n\r\n<p class="goBack-link"><a href="javascript:history.go(-1)"><<< Back</a></p>\r\n\r\n\r\n<div class="roster ">\r\n\t\t\t<div class="title">Men\'s Basketball - 2011-12 Roster</div>\r\n\t\t<div class="table">\r\n\t\t<div class="titles">\r\n\t\t\t
<div class="number">No.</div>\r\n\t\t\t<div class="name">Name</div>\r\n\t\t\t<div class="positions">Position</div>\r\n\t\t</div>\r\n\t\t\r\n\t\t\t\t\t<div class="item even clearfix">\r\n\t\t\t\t<div class="data">\r\n\t\t\t\t\t<div class="number">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t3\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class="name">
红宝石:
doc = Nokogiri::HTML(open("http://www.google.com/search?q=doughnuts"))
doc.css('tr').each do |node|
puts node.text
end
找不到tr
s,但是
doc.css('div').each do |node|
puts node.text
end
找到div
s