无法使用 Python BeautifulSoup 找到 table
Cannot find table using Python BeautifulSoup
我正在尝试从以下 NOAA 站点 https://www.weather.gov/afc/alaskaObs 的 table id=AWS 抓取数据,但是当我尝试使用 '.find 查找 table ' 我的结果是 none。我可以 return 父 div,但似乎无法访问 table。下面是我的代码。
from bs4 import BeautifulSoup
from urllib2 import urlopen
# Get soup set up
html = urlopen('https://www.weather.gov/afc/alaskaObs').read()
soup = BeautifulSoup(html, 'lxml').find("div", {"id":"obDataDiv"}).find("table", {"id":"AWS"})
print soup
当我试图找到父 div、"obDataDiv" 时,它 return 如下。
<div id="obDataDiv">Â </div>
我是 BeautifulSoup 的新手,这是一个错误吗?感谢任何帮助,谢谢!
您提取的 div
似乎只包含一个 table。那么为什么不做这样的事情呢:
soup = BeautifulSoup(html, 'lxml').find("div", {"id":"obDataDiv"}).find("table")
urlopen 只会为您提供从服务器下载的 DOM,而不是 运行ning 初始客户端脚本后的结果。对于您的示例站点,table 是在页面加载后生成的 Javascript。所以你需要先使用 PhantomJS、Selenium 等来让必要的客户端 JS 运行。
我正在尝试从以下 NOAA 站点 https://www.weather.gov/afc/alaskaObs 的 table id=AWS 抓取数据,但是当我尝试使用 '.find 查找 table ' 我的结果是 none。我可以 return 父 div,但似乎无法访问 table。下面是我的代码。
from bs4 import BeautifulSoup
from urllib2 import urlopen
# Get soup set up
html = urlopen('https://www.weather.gov/afc/alaskaObs').read()
soup = BeautifulSoup(html, 'lxml').find("div", {"id":"obDataDiv"}).find("table", {"id":"AWS"})
print soup
当我试图找到父 div、"obDataDiv" 时,它 return 如下。
<div id="obDataDiv">Â </div>
我是 BeautifulSoup 的新手,这是一个错误吗?感谢任何帮助,谢谢!
您提取的 div
似乎只包含一个 table。那么为什么不做这样的事情呢:
soup = BeautifulSoup(html, 'lxml').find("div", {"id":"obDataDiv"}).find("table")
urlopen 只会为您提供从服务器下载的 DOM,而不是 运行ning 初始客户端脚本后的结果。对于您的示例站点,table 是在页面加载后生成的 Javascript。所以你需要先使用 PhantomJS、Selenium 等来让必要的客户端 JS 运行。