AttributeError: объект 'NoneType' не имеет атрибута 'text' Python Beautifulsoup - PullRequest
0 голосов
/ 06 мая 2018
import bs4,requests, re

#Get epsiode webpage
epPage = requests.get('http://www.friends-tv.org/zz101.html')
epPage.raise_for_status()

#use the page in bs4
soup = bs4.BeautifulSoup(epPage.text, 'lxml')
results = soup.find_all('dt')

#Populate the list
quotes = []
for result in results:
    character = result.find('b').text
    speech = result.contents[1][1:-2]
    quotes.append((character,speech))

print (quotes)`

Я пытаюсь получить список цитат и персонажа, который сказал это с этого сайта: http://www.friends -tv.org / zz101.html . Однако я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "/Users/yusufsohoye/pythoncode/Friends1.py", line 16, in <module>
    character = result.find('b').text
AttributeError: 'NoneType' object has no attribute 'text' 

Это работает, когда я изолирую каждый элемент dt в списке результатов, но не когда я пытаюсь проанализировать всю страницу и построить список.

Спасибо

1 Ответ

0 голосов
/ 06 мая 2018

Это должно помочь.

import bs4,requests, re

#Get epsiode webpage
epPage = requests.get('http://www.friends-tv.org/zz101.html')
epPage.raise_for_status()

#use the page in bs4
soup = bs4.BeautifulSoup(epPage.text, 'lxml')
results = soup.find_all('dt')

#Populate the list
quotes = []
for result in results:
    character = result.find('b')
    if character:     #Check Condition to see if character in dt tag
        speech = result.contents[1][1:-2]
        squotes.append((character,speech))

print(quotes)
...