-1

所以我想用漂亮的汤来获取这个页面的内容。我想创建一个包含所有 css 颜色名称的字典,这似乎是一种快速简便的访问方法。所以很自然地我做了快速的基本操作:

from bs4 import BeautifulSoup as bs
url = 'http://www.w3schools.com/cssref/css_colornames.asp'
soup = bs(url)

出于某种原因,我只在p正文中的标签中获取 url,就是这样:

>>> print soup.prettify()
<html>
 <body>
  <p>
   http://www.w3schools.com/cssref/css_colornames.asp
  </p>
 </body>
</html>

为什么 BeautifulSoup 不能让我访问我需要的信息?

4

1 回答 1

2

Beautifulsoup 不会您加载 URL。

您需要传入完整的 HTML 页面,这意味着您需要先从 URL 加载它。urllib2.urlopen这是一个使用该函数来实现的示例:

from urllib2 import urlopen
from bs4 import BeautifulSoup as bs

source = urlopen(url).read()
soup = bs(source)

现在您可以很好地提取颜色:

css_table = soup.find('table', class_='reference')
for row in css_table.find_all('tr'):
    cells = row.find_all('td')
    if cells:
        print cells[0].a.text, cells[1].a.text
于 2013-08-07T15:42:31.813 回答