bs4 — Как найти только абзацы с кавычками в них?

#python #python-3.x #parsing #beautifulsoup #python-requests

#python #python-3.x #синтаксический анализ #beautifulsoup #python-запросы

Вопрос:

Я пытаюсь выяснить, как найти все абзацы на веб-сайте (https://www.shortlist.com/news/most-ridiculous-trump-quotes-ever ) и сохраняйте только абзацы с кавычками в них. Я использую bs4 для анализа данных и запросов для получения содержимого веб-сайта. Я не могу понять, как хранить только те абзацы, в которых есть кавычки. Любая помощь или рекомендации будут оценены. В конце я в основном хочу сохранить все кавычки в текстовом файле.

Ответ №1:

Самое простое решение — просто выбрать первый p абзац после h3 заголовка, который начинается с "On" (таким образом, вы пропускаете random h3 ‘s).

 {p.text: p.find_next("p").text for p in soup.select("div > h3") if p.text.startswith("On")}
 

пример вывода:

 {'On domestic policy': '"I think if this country gets any kinder or gentler, it's literally going to cease to exist."rn',
 'On immigration': '“Why are we having all these people from shithole countries coming here?”rn',
 'On Syrian refugees': '"What I won't do is take in two hundred thousand Syrians who could be ISIS... I have been watching this migration. And I see the people. I mean, they're men. They're mostly men, and they're strong men. These are physically young, strong men. They look like prime-time soldiers. Now it's probably not true, but where are the women?... So, you ask two things. Number one, why aren't they fighting for their country? And number two, I don't want these people coming over here."rn',
 'On border control': '"I will build a great, great wall on our southern border, and I will have Mexico pay for that wall. Mark my words."rn',