Проксимов
А нахрен тебе бс4 упал?
Блять ну ты ебнулся что ли
Way
А нахрен тебе бс4 упал?
ну так мне по сути из тегов только <a>
Way
а потом bs4object.get_text()
Way
и сразу из всех тегов текст вытаскивается
Nikolay Markov
Way
чтобы руками не вытаскивать регулярками
Yurii
Блять ну ты ебнулся что ли
Ну ему нужен объект бс но зачем после редактирования текста
Проксимов
и сразу из всех тегов текст вытаскивается
Попробуй вытаскивать не из всех
Way
Ну ему нужен объект бс но зачем после редактирования текста
Так ты либо текст из bs4object достаешь, либо преобразуешь этот объект в текст и кидаешь в re.sub
Проксимов
Yurii
Html
Way
TAGS = { "time": lambda item, copy_item: re.sub(r"<time*[^>]+>(.*)</time>", r"\t\1", copy_item), "strong": lambda item, copy_item: re.sub(r"<strong*[^>]+>(.*)</strong>", r"\t\1", copy_item), "br": lambda item, copy_item: copy_item.replace("<br>", "\n").replace("<br/>", "\n"), "a": lambda item, copy_item: re.sub(r'<a href="([^\"]*)" [^>]+>([^</a>]+)</a>', r'\2[\1]', copy_item), "span": lambda item, copy_item: re.sub(r"<span*[^>]+>(.*)</span>", r"\1", copy_item), "i": lambda item, copy_item: re.sub(r"<i*[^>]+>(.*)</i>", r"\1", copy_item), "p": lambda item, copy_item: re.sub(r"<p*[^>]+>(.*)</p>", r"\t\1", copy_item), "em": lambda item, copy_item: re.sub(r"<em*[^>]+>(.*)</em>", r"\1", copy_item), "h1": lambda item, copy_item: re.sub(r"<h1*[^>]+>(.*)</h1>", r"\t\1", copy_item), "h2": lambda item, copy_item: re.sub(r"<h2*[^>]+>(.*)</h2>", r"\t\1", copy_item), "h3": lambda item, copy_item: re.sub(r"<h3*[^>]+>(.*)</h3>", r"\t\1", copy_item), "h4": lambda item, copy_item: re.sub(r"<h4*[^>]+>(.*)</h4>", r"\t\1", copy_item), "h5": lambda item, copy_item: re.sub(r"<h5*[^>]+>(.*)</h5>", r"\t\1", copy_item), "h6": lambda item, copy_item: re.sub(r"<h6*[^>]+>(.*)</h6>", r"\t\1", copy_item), }
Way
Смотри какая красота
Yurii
Зато регулярки знаешь неплохо)
Way
Ага
Nikolay Markov
TAGS = { "time": lambda item, copy_item: re.sub(r"<time*[^>]+>(.*)</time>", r"\t\1", copy_item), "strong": lambda item, copy_item: re.sub(r"<strong*[^>]+>(.*)</strong>", r"\t\1", copy_item), "br": lambda item, copy_item: copy_item.replace("<br>", "\n").replace("<br/>", "\n"), "a": lambda item, copy_item: re.sub(r'<a href="([^\"]*)" [^>]+>([^</a>]+)</a>', r'\2[\1]', copy_item), "span": lambda item, copy_item: re.sub(r"<span*[^>]+>(.*)</span>", r"\1", copy_item), "i": lambda item, copy_item: re.sub(r"<i*[^>]+>(.*)</i>", r"\1", copy_item), "p": lambda item, copy_item: re.sub(r"<p*[^>]+>(.*)</p>", r"\t\1", copy_item), "em": lambda item, copy_item: re.sub(r"<em*[^>]+>(.*)</em>", r"\1", copy_item), "h1": lambda item, copy_item: re.sub(r"<h1*[^>]+>(.*)</h1>", r"\t\1", copy_item), "h2": lambda item, copy_item: re.sub(r"<h2*[^>]+>(.*)</h2>", r"\t\1", copy_item), "h3": lambda item, copy_item: re.sub(r"<h3*[^>]+>(.*)</h3>", r"\t\1", copy_item), "h4": lambda item, copy_item: re.sub(r"<h4*[^>]+>(.*)</h4>", r"\t\1", copy_item), "h5": lambda item, copy_item: re.sub(r"<h5*[^>]+>(.*)</h5>", r"\t\1", copy_item), "h6": lambda item, copy_item: re.sub(r"<h6*[^>]+>(.*)</h6>", r"\t\1", copy_item), }
Не надо так делать
Way
Но спустя час я так и не решил проблему =(
Nikolay Markov
Бери bs4 и парси всё им
Way
Можно как-то ему мут выдать?
maxlunar
Бери bs4 и парси всё им
А почему не lxml?
Nikolay Markov
А почему не lxml?
Потому что bs4 может под собой использовать разные парсеры, включая lxml
Tishka17
Еще один
Список объектов бля
Проксимов
А почему не lxml?
Да похуй же
Yurii
😄
Tishka17
А если будет 2 и более одинаковых WORD, то как мне явно указать, к какому из них принадлежит ссылка?
Bs4, регулярки - это способ парсить. А в чем хранить дальше данные - вообще к ним не относится. Ты так же можешь вытащить регуляркой или через бс4 данные, а потом их проебать. А можешь вытащить любым способом, а потом нормально в памяти сохранить
Way
Зачем вот это вот всё?
Way
Есть прямой вопрос
Tishka17
К тому, что блин словарь с данными в памяти не имеет отношения к тому как ты для него данные достанешь
Way
Задача отформатировать html код
Way
под задачу
Tishka17
В бс4 у тебя есть объект "нода". Допустм ссылка. У нее есть есть текст и адрес. Вытащил, сохранил куда-нибудь
Tishka17
А потом делай с ними что хочешь
Tishka17
Задача отформатировать html код
Ты только что говорил про парсинг
Way
Я не говорил, что мне нужно парсить и хранить
Way
отформатировать
Way
И всё
Tishka17
Что значит "форматировать"?
Way
Привести к заданному формату*
Yurii
Ну текст хтмл поменять)
Tishka17
Не понятно. Тебе все таки надо расставить пробелы в коде, сохраним структуру. Поменять внешний вид страницы сохранив структуру кода. Или переделать нахрен структуру кода сохранив смысл?
Way
Ок
Way
ну че, давай еще раз
Way
Я беру новостной сайт
Way
Забираю с него по нужным мне блокам div инфу
Way
И так к некоторым словам привязаны слова
Way
тег <a>
Way
Задача сохранить текст не теряя сайтов
Way
А имеено
Way
any text abra kadabra tut[URL]
Way
Я могу сделать обычный str.replace
Tishka17
Так стоп
Way
но если будет несколько слов tut, а ссылка привязана только к одному из них, то уже ошибка
Tishka17
Так тебе блин распарсить сайт, вытащить из него инфу и сгенерить для нее новую страницу надо или все таки просто расставить пробелы в коде?
Way
Просто основной текст статьи
Way
С сохранением ссылок
Way
и сохранить в файл
Yurii
но если будет несколько слов tut, а ссылка привязана только к одному из них, то уже ошибка
Парсер находит тег, в теге слово и ссылка. Ты берешь извлекаешь и вяжешь
🍁 Jaŭhien
Найди блок, в котором лежит основной текст и бери его
Tishka17
Просто основной текст статьи
<a href='/index.php'><span>что-то</span><br/><strong>qwrtt</strong></a> Вот во что это должно распарситься?
Tishka17
Простите переформатироваться
Tishka17
А куда дел qwrtt?
Way
не заметил
Tishka17
Да без проблем вообще
Tishka17
И не только так
Tishka17
Ещё можно картинки в ссылки пихать
Way
Предположу что так тогда что-то qwrtt[http[s]://domain.com/index.php]
Way
К последнему слову вяжем ссылку
Tishka17
А "что-то" куда дел?
Way
А "что-то" куда дел?
К последнему слову вяжем ссылку*