Как я могу ввести код, хранящийся в ячейке MySQL, в мой красивый Python - PullRequest
0 голосов
/ 15 февраля 2019

Я анализирую множество различных веб-сайтов и хочу сохранить их уникальные теги в таблице MySQL и использовать этот хранимый код для извлечения нового контента с помощью красивого супа.Однако у меня возникают проблемы при получении этого кода и размещении его в моем красивом супе для более сложных тегов за пределами «title».

Так что это работает для простых тегов, таких как «title», но не для «div»', {' class ':' event-info '}, которая является строкой [3] в моем примере.

'div', {'class': 'event-info'} находится в моей ячейке mysql в строке [3]

Traceback (most recent call last):
  File 
    content = soup.find(row[3]).get_text().strip()
AttributeError: 'NoneType' object has no attribute 'get_text'

Мой столбец использует"varchar (255) COLLATE utf8mb4_unicode_ci"

1 Ответ

0 голосов
/ 15 февраля 2019

Я думаю, это потому, что вы вызываете метод find со строкой.Для правильного поведения вы должны сохранить различные аргументы в отдельных столбцах таблицы MySQL или изменить это значение следующим образом:

rs = row[3].split(',')
rtag = rs[0].split('\'')[1]

rclass = dict()
rclass[rs[1].split('\'')[1]] = rs[1].split('\'')[3]

И, наконец,

content = soup.find(rtag, rclass).get_text().strip()
...