Невозможно получить доступ к строке в теге <a>в красивом супе - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь получить теги из таблицы html, используя следующий код:

url = "https://www.worldfootball.net/report/premier-league-2007-2008-arsenal-fc-fulham-fc/"
url_content=requests.get(url).content
match_content = BeautifulSoup(url_content,'html.parser')
tag = match_content.find_all(class_="standard_tabelle")
#Get teams
teams = tag[0].find_all("a")
#Iterate through goals
for a in tag[1].select("tr"):
    b = a.select_one("a")
    print(b)

Если я «распечатать» результат, я получу:

None
<a href="/player_summary/david-healy/" title="David Healy">David Healy</a>
<a href="/player_summary/robin-van-persie/" title="Robin van Persie">Robin van Persie</a>
<a href="/player_summary/aliaksandr-hleb/" title="Aliaksandr Hleb">Aliaksandr Hleb</a>

, но если я попытаюсьчтобы напечатать 'b.string', я получаю следующую ошибку:

AttributeError: у объекта 'NoneType' нет атрибута 'string'

Я понимаю, что мой код, вероятно, не самый надежный, но яне могу понять, почему он не получит строку из каждого результата.Любая помощь будет оценена.Большое спасибо

1 Ответ

0 голосов
/ 25 ноября 2018

В первом <tr>, возвращаемом tag[1].select("tr"), нет <a>.Вы можете видеть это, когда print(b) печатает None.Но затем вы пытаетесь использовать это, чтобы получить атрибут string, который не работает.Убедитесь, что b действительно содержит что-то:

if b:
    print(b.string)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...