Первый пользователь Python 3 и начинает его повесить. В качестве упражнения я пытаюсь прочитать таблицу (с BeautifulSoup4) от http://rateyourmusic.com/customchart и преобразовать Ранг, Исполнитель, Альбом и Год в словарь. Я хочу поместить словарь в базу данных MySQL. Я смог получить всю информацию из таблицы и поместить ее в переменные, которые затем помещаю в словарь, но у меня небольшая проблема. Последняя запись в таблице - это реклама, поэтому она не следует за другими строками таблицы над ней. Я хочу только прочитать первые 100 строк таблицы. При попытке прочитать строку рекламы я получаю сообщение об ошибке.Python и BS4 - прекратить чтение после определенного количества раз
Вот мой код. Пожалуйста, любая помощь будет замечательной. Также, если вы видите какие-либо ошибки в моем коде или как я мог бы сделать что-то лучше, пожалуйста, дайте мне знать.
Так что это печать словарей, и все выглядит хорошо, но это дает мне ошибку после распечатки всех их.
from bs4 import BeautifulSoup
from urllib.request import Request, urlopen
url = "http://rateyourmusic.com/customchart"
req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(urlopen(req))
table = soup.find("table", {"class" : "mbgen"})
totalList = []
for row in table.findAll("tr"):
cells = row.findAll("td")
rank = int(cells[0].find(class_="ooookiig").text)
artist = cells[2].find(class_="artist").text
album = cells[2].find(class_="album").text
year = cells[2].find(class_="mediumg").text
year = int(year[1:5])
chartData = {"Rank":rank, "Artist":artist, "Album":album, "Year":year}
totalList.append(chartData)
print(chartData)
Можете ли вы предоставить полный отслеживающий? – aIKid
Traceback (последний последний звонок): Файл «C: \ Programming \ RateYourMusicCrawler \ AlbumInfoCrawler.py», строка 21, в rank = int (ячейки [0] .find (класс _ = "ooookiig")) AttributeError: объект «NoneType» не имеет атрибута «текст» –