Я только начинаю изучать, как использовать Beautiful Soup.
В качестве упражнения я выбрал эту страницу из ESPN .
Там есть таблицас игроками НБА и их фантазийными рядами.Мне удалось распечатать всю строку, и она показывает все, что я вижу в своем браузере.
Однако, когда я иду печатать каждую ячейку отдельно, она печатает «Нет», потому что по какой-то причине она можетне разбираю ячейку с якорем
Вот мой код ниже:
from bs4 import BeautifulSoup
import urllib2
import re
if __name__ == '__main__':
url = "http://www.espn.com/espn/print?id=20443164"
resp = urllib2.urlopen(url)
soup = BeautifulSoup(resp.read())
table = soup.find_all("table")
mytable = table[2]
rows = mytable.findChildren(['th','tr'])
print rows
for row in rows:
cells = row.findChildren('td')
for cell in cells:
# print cell.string # line in question
print cell # line in question
Если я использую
print cell
, я получаю следующий вывод:
<td>1. <a href="http://www.espn.com/nba/player/_/id/3032977/giannis-antetokounmpo">Giannis Antetokounmpo</a>, SF/PF</td>
<td>PHI</td>
<td>C24</td>
Если я использую
print cell.string
, я получаю следующий вывод:
None
MIL
SF1
Так как я могу распечатать все без тегов "td", но распознать всев первой ячейке без печати «Нет»?