看US Census QFD我想按县的比例来争取比赛。我正在构建的循环超出了我的问题范围,该问题涉及以下代码:
url = 'http://quickfacts.census.gov/qfd/states/48/48507.html'
#last county in TX; for some reason the qfd #'s counties w/ only odd numbers
page = urllib2.urlopen(url)
soup = BeautifulSoup(page)
c_black_alone = soup.find_all("td", attrs={'headers':'rp9'})[0] #c = county %
s_black_alone = soup.find_all("td", attrs={'headers':'rp9'})[1] #s = state %
它获取html元素,包括其标记,而不仅仅是其中的文本:
^{pr2}$在^上面,我只想在元素中有%。。。在
此外,为什么
test_black = soup.find_all("td", text = "Black")
不返回与上面相同的元素(或其文本),而是返回一个空的bs4 ResultSet对象?(编辑:我一直在跟踪文档,所以我希望这个问题不要太模糊……)
要从这些匹配项中获取文本,请使用
.text
获取所有包含的文本:由于以下两个原因,
text
搜索不匹配任何内容:<td>Black</td>
作为唯一内容的元素。在解决这一问题的方法是使用lambda;它将传递给整个元素,您可以验证每个元素:
^{pr2}$演示:
这两个匹配项在
<td>
元素中都有注释,使得使用text
匹配的搜索无效。在相关问题 更多 >
编程相关推荐