Warum gibt bs4 Tags und dann eine leere Liste an diese find_all () -Methode zurück?

AnschauenUS Census QFD Ich versuche, das Rennen% nach Landkreisen zu erfassen. Die Schleife, die ich baue, liegt außerhalb des Bereichs meiner Frage, die diesen Code betrifft:

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 %

Welche das HTML-Element einschließlich seiner Tags erfasst, nicht nur den darin enthaltenen Text:

c_black_alone, s_black_alone

(<td align="right" headers="rp9 p1" valign="bottom">96.9%<sup></sup></td>,
 <td align="right" headers="rp9 p2" valign="bottom">80.3%<sup></sup></td>)

Above ^, ich möchte nur die% 's in den Elementen ...

Warum funktioniert

test_black = soup.find_all("td", text = "Black")

nicht dasselbe Element wie oben (oder seinen Text) zurückgeben, sondern stattdessen ein leeres bs4 ResultSet-Objekt zurückgeben? (Edit: Ich habe die Dokumentation mitverfolgt, daher hoffe ich, dass diese Frage nicht zu vage erscheint ...)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage