Как исключить классы div «modal-content» и «modal-body» из веб-скребка Pyppeteer?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как исключить классы div «modal-content» и «modal-body» из веб-скребка Pyppeteer?

Сообщение Anonymous »

Я создаю парсер, который получает текстовые данные из списка статей. Типичный образец текстового контента, который я сейчас проверяю, - это сообщение внизу:
"Как подписчик, вам показывают на 80 % меньше медийной рекламы при чтении. Наши статьи, которые вы видите, в основном принадлежат местным компаниям, продвигающим местные услуги. Эти рекламные объявления позволяют местным предприятиям привлечь внимание своей целевой аудитории – местного сообщества. Важно, чтобы мы продолжали продвигать эту рекламу по мере необходимости нашего местного бизнеса. как можно больше поддержки в эти трудные времена».
Я хочу, чтобы парсер pyppeteer игнорировал классы, содержащие это сообщение, чтобы он не втягивался в результирующие данные. Глядя на "суп" сайта, кажется, что они хранятся в и , но я не могу этого понять. чтобы исключить их из очистки. Вот фрагмент моего сценария Pyppeteer.

Код: Выделить всё

if url.startswith('www.'):
url = 'https://' + url
try:
page = await browser.newPage()

await stealth(page)

# Go to the desired page and wait for resources to load
await page.goto(url, waitUntil='networkidle2', timeout=1000000)

# Execute JavaScript to remove unwanted elements
await page.evaluate('''() => {

// Function to block new windows (pop-ups)
function blockPopups() {
window.open = function() {
console.log("Blocked a popup attempt.");
};
}
blockPopups();

// Select and remove all  and  elements
const unwantedElements = document.querySelectorAll('nav, footer', 'header', 'menu', 'sidebar', 'ads', 'related', 'sponsored', 'comments', 'subscribe', 'social', 'popup', 'modal', 'mainfooter', 'search-form', 'bottomAd', 'modal-dialog', 'modal-lg', 'modal-content', 'modal-body', 'modal-footer');
unwantedElements.forEach(el => el.remove());

// Select and remove specific  elements by their class combinations
const specificParagraphs = ['p.sc-ipEyDJ.sc-dmctIk.jsPbGk.eDQUpO', 'p.sc-ipEyDJ.sc-idXgbr.jsPbGk.hBXpo', 'p.article-comments__moderation-rules-text', 'p.delete-alert__message mar-alert__message'];
specificParagraphs.forEach(selector => {
const el = document.querySelector(selector);
if (el) {
el.remove();
}
});

// Return nothing, as content extraction will be done later in Python
}''')

# Extract content using BeautifulSoup
headings, paragraphs = await extract_content(page)`
Что я пробовал:

Код: Выделить всё

const unwantedElements = document.querySelectorAll('nav, footer', 'header', 'menu', 'sidebar', 'ads', 'related', 'sponsored', 'comments', 'subscribe', 'social', 'popup', 'modal', 'mainfooter', 'search-form', 'bottomAd', 'modal-dialog', 'modal-lg', 'modal-content', 'modal-body', 'modal-footer'); unwantedElements.forEach(el => el.remove());
Что я ожидал:
(Текстовое содержание страницы без содержания о рекламе)
Что на самом деле получилось:
Что я ожидал:
(Текстовое содержимое), за которым следует 'Как подписчик, вам будет показано на 80 % меньше медийной рекламы при чтении наших статей. Те объявления, которые вы видите, в основном принадлежат местным компаниям, продвигающим местные услуги. Эта реклама позволяет местному бизнесу предстать перед своей целевой аудиторией – местным сообществом. Важно, чтобы мы продолжали продвигать эту рекламу, поскольку в эти трудные времена наш местный бизнес нуждается в максимальной поддержке».

Подробнее здесь: https://stackoverflow.com/questions/787 ... teer-web-s
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Каковы значения свойств HTML Body Body? [закрыто]
    Anonymous » » в форуме Html
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Столкнулся с проблемой при развертывании веб-скребка на Heroku.
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Как автоматически заполнить CAPTCHA изображением с помощью веб-скребка в ASP.NET C#? [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как автоматически заполнить CAPTCHA изображением с помощью веб-скребка в ASP.NET C#? [закрыто]
    Anonymous » » в форуме Javascript
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Запрос веб -скребка Python MongoDB не работает
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»